1. 程式人生 > 實用技巧 >python之列表與集合

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')

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

#差集
print('差集, set1-set2,set2-set1')
print('set1-set2= ',set1-set2) 
print('set2-set1= ',set2-set1, '\n' )

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

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


#反交集
print('反交集,  set1 ^ set2 除了交集外的元素,相當於並集-交集')
print(set1 ^ set2)