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

>>>listset后去重复: 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, '\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}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值