• python之列表与集合


    Python 列表与集合

    列表排序方法

    1. sort() :按字母顺序排列

    2. sort(reverse=True): 按字母顺序反向排列

    3. reverse(): 反转列表排列

      列表排序方法将直接改变原列表排列

      L1.sort(), L1.sort(reverse=True), L1.reverse()

    列表排序函数

    1. sorted(list_obj)

    2. sorted(list_obj, reverse=True)

    3. reversed(list_obj)

      可显示排列顺序或赋值给新列表,并不改变原列表排列顺序

      sorted(L1), sorted(L1, reverse=True), reversed(L1)

    列表赋值

    变量的赋值操作为引用的赋值

    a = [1, 2, 3, 4]
    b = a # 将a的引用赋值b
    print(a, id(a), b, id(b))
    
    >>> [1, 2, 3, 4] 140492488 [1, 2, 3, 4] 140492488
    

    列表切片在赋值号右边, 会产生原列表的拷贝,为浅拷贝,只进行第一层的复制

    a = [1, 2, 3, 4]
    b = a[2:]
    print(a, id(a), b, id(b))
    
    >>>[1, 2, 3, 4] 140416712 [3, 4] 140416904
    
    x = ['a', 'b']
    a = [1,x,3,4]
    b = a[:]
    b[1][0] = 'z'
    print(a, id(a), b, id(b))
    
    >>> [1, ['z', 'b'], 3, 4] 140417992 [1, ['z', 'b'], 3, 4] 140310856
    

    列表切片在赋值号左边,且没有指定起止索引,则会将复制号右边的值替换左侧列表全部内容而不会产生新的列表

    a = [1, 2, 3, 4]
    a[:] = ['a','b','c']
    print(a)
    
    >>>['a', 'b', 'c']
    

    集合的主要作用是去重、计算交集,并集,差集,反交集

    my_list = [1,1,1]
    my_list = list(set(my_list))
    print('list转set后去重复: my_list = ', my_list)
    my_set = {1,1,3}
    print(my_list)
    print(my_set,'
    ')
    
    >>>list转set后去重复: my_list =  [1]
    >>>[1]
    >>>{1, 3} 
    
    set1 = {1,2,3,4}
    set2 = {1,2,5,6}
    
    #差集
    print('差集, set1-set2,set2-set1')
    print('set1-set2= ',set1-set2) 
    print('set2-set1= ',set2-set1, '
    ' )
    
    >>>差集, set1-set2,set2-set1
    >>>set1-set2=  {3, 4}
    >>>set2-set1=  {5, 6} 
    
    #并集
    print('并集, set1 | set2')
    print('set1 | set2= ', set1 | set2, '
    ')
    
    >>>并集, set1 | set2
    >>>set1 | set2=  {1, 2, 3, 4, 5, 6} 
    
    #交集
    print('交集, set1 & set2')
    print('set1 & set2= ', set1 & set2, '
    ')
    
    >>>交集, set1 & set2
    >>>set1 & set2=  {1, 2} 
    
    #反交集
    print('反交集,  set1 ^ set2 除了交集外的元素,相当于并集-交集')
    print(set1 ^ set2)
    
    >>>反交集,  set1 ^ set2 除了交集外的元素,相当于并集-交集
    >>>{3, 4, 5, 6}
    
  • 相关阅读:
    怎么知道银行卡号对应的银行
    集合排序、map、枚举
    669. Trim a Binary Search Tree修剪二叉搜索树
    17. Merge Two Binary Trees 融合二叉树
    226. Invert Binary Tree 翻转二叉树
    530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
    191. Number of 1 Bits 二进制中1的个数
    Hamming Distance二进制距离
    136. Single Number唯一的数字
    276. Paint Fence篱笆涂色
  • 原文地址:https://www.cnblogs.com/relaxlee/p/13452252.html
Copyright © 2020-2023  润新知