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
    欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/hiyong/p/14290044.html
Copyright © 2011-2022 走看看