zoukankan      html  css  js  c++  java
  • Python笔记:List相关操作

    List相关操作小例子

    获取list的下标和值

    >>> mylist = ['a', 'b', 'c', 'd']
    >>> for index, value in enumerate(mylist):
    ...         print(index, value)
    ...
    0 a
    1 b
    2 c
    3 d
    >>>
    

    删除list中的空字符

    list1 = ['1', '','2', '3', '  ', ' 4  ', '  5', '    ','6 ', '', '     ',None, '7']
    print(list1)
    list2 = list(filter(None, list1)) 
    print(list2) # ['1', '2', '3', '  ', ' 4  ', '  5', '    ', '6 ', '     ', '7']
    list3 = [x.strip() for x in list2]
    print(list3) # ['1', '2', '3', '', '4', '5', '', '6', '', '7']
    list4 = list(filter(None, list3))  
    print(list4) # ['1', '2', '3', '4', '5', '6', '7']
    

    删除list元素

    使用remove、pop和del方法参删除list中的某个元素

    >>> mylist = ['a', 'b', 'c', 'd','e','f','g','h']
    >>> mylist.remove('a')
    >>> mylist
    ['b', 'c', 'd', 'e', 'f', 'g', 'h']
    >>> mylist.pop(0)
    'b'
    >>> mylist
    ['c', 'd', 'e', 'f', 'g', 'h']
    >>> del mylist[0]
    >>> mylist
    ['d', 'e', 'f', 'g', 'h']
    >>> del mylist[0:2]
    >>> mylist
    ['f', 'g', 'h']
    >>> del mylist
    >>> mylist
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'mylist' is not defined
    >>>
    

    计算中位数

    def get_median(data):
         data.sort()
         half = len(data) // 2
         return (data[half] + data[~half]) / 2
    

    将字符串list转换为int

    >>> test_list = ['1', '4', '3', '6', '7']
    >>> test_list = list(map(int, test_list))
    >>> test_list
    [1, 4, 3, 6, 7]
    >>>
    

    合并、连接字符串list

    >>> test_list = ['192', '168', '0', '1']
    >>> test_list = '.'.join(test_list)
    >>> test_list
    '192.168.0.1'
    >>>
    

    取多个字符串/list交集

    >>> a = ['123','234','1253']
    >>> list(reduce(lambda x,y : set(x) & set(y), a))
    ['2', '3']
    >>> b = [[1,2,3],[1,2],[1,2,3,4],[12,1,2]]
    >>> list(reduce(lambda x,y : set(x) & set(y), b))
    [1, 2]
    

    合并字典value值

    >>> mydict = {0:"hello ", 1:"world"}
    >>> mylist =reduce(lambda x, y : x + y, mydict.values())
    >>> mylist
    'hello world'
    >>> mydict = {0:[1,2,3,4], 1:[2,3,4,5,6]}
    >>> mylist = list(reduce(lambda x, y : x + y, mydict.values()))
    >>> mylist
    [1, 2, 3, 4, 2, 3, 4, 5, 6]
    >>> field_counters = dict(Counter(mylist))
    >>> field_counters
    {1: 1, 2: 2, 3: 2, 4: 2, 5: 1, 6: 1}
    

    列表排列组合

    列表排列组合可以使用迭代器模块itertools

    列表排列

    import itertools
    
    l = [1, 2, 3]
    print(list(itertools.permutations(l, 2)))
    print(list(itertools.permutations(l, 3)))
    

    结果:

    [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
    [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
    

    组合

    import itertools
    
    l = [1, 2, 3]
    print(list(itertools.combinations(l, 2)))
    

    结果:

    [(1, 2), (1, 3), (2, 3)]
    

    多个列表元素组合:笛卡尔积

    两个列表元素两两组合:

    import itertools
    
    l = [1, 2, 3]
    l1 = [11, 12, 13]
    l2 = [21, 22, 23]
    # 笛卡尔积
    print(list(itertools.product(l, l)))
    print(list(itertools.product(l, repeat=2)))
    print(list(itertools.product(l1, l2)))
    

    结果:

    [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
    [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
    [(11, 21), (11, 22), (11, 23), (12, 21), (12, 22), (12, 23), (13, 21), (13, 22), (13, 23)]
    
    --THE END--

    文章标题:Python笔记:List相关操作
    本文作者:hiyo
    本文链接:https://www.cnblogs.com/hiyong/p/14290044.html
    欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

  • 相关阅读:
    OpenStack Nova Release(Rocky to Train)
    5G 与 MEC 边缘计算
    Cinder LVM Oversubscription in thin provisioning
    浅析视频云行业及实现技术
    虚拟化技术实现 — KVM 的 CPU 虚拟化
    虚拟化技术实现 — QEMU-KVM
    云计算与虚拟化技术发展编年史
    计算机组成原理 — FPGA 现场可编程门阵列
    Installutil.exe 注册exe
    ASP.NET MVC- 布署
  • 原文地址:https://www.cnblogs.com/hiyong/p/14290044.html
Copyright © 2011-2022 走看看