列表与集合

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,'\n')

>>>list转set后去重复: my_list =  [1]
>>>[1]
>>>{1, 3} 

set1 = {1,2,3,4}
set2 = {1,2,5,6}
print('set1= ', set1)
print('set2= ', set2, '\n')

>>>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, '\n' )

>>>差集, set1-set2,set2-set1
>>>set1-set2=  {3, 4}
>>>set2-set1=  {5, 6} 

#并集
print('并集, set1 | set2')
print('set1 | set2= ', set1 | set2, '\n')

>>>并集, set1 | set2
>>>set1 | set2=  {1, 2, 3, 4, 5, 6} 

#交集
print('交集, set1 & set2')
print('set1 & set2= ', set1 & set2, '\n')

>>>交集, set1 & set2
>>>set1 & set2=  {1, 2} 

#反交集
print('反交集,  set1 ^ set2 除了交集外的元素,相当于并集-交集')
print(set1 ^ set2)

>>>反交集,  set1 ^ set2 除了交集外的元素,相当于并集-交集
>>>{3, 4, 5, 6}
posted @ 2020-08-05 15:19  ManIThMrrr  阅读(170)  评论(0编辑  收藏  举报