1. 程式人生 > >python set集合 推導式

python set集合 推導式

集合是一個無序不重複元素的集,基本功能包括關係測試和消除重複元素,結合物件還支援union(聯合) intersection(交)  difference(差)  sysmmerric difference(對稱差集)等數學運算
大括號或set()函式可以用來建立集合,注意:想要建立空集合,你必須使用set()而不是{},{}用於建立空字典
集合的建立演示如下:

# 用大括號{}來建立集合

a = {"hello","hao","hello","hao","Tom"}
print(a)
結果: 它的輸出結果不會重複排序每次也不一樣

{'Tom', 'hello', 'hao'}

# set來建立集合
b = set(["hello","hao","hello","hao"])
print(b)
結果:
{'hao', 'hello'}
# union 聯合
print(a|b)
結果:
{'hello', 'hao', 'Tom'}
# intersection 交集
print(a&b)
# sysmmetric difference  對稱差集等數學運算
print(a-b)

推導式:是Python中很強大的,很受歡迎的特性,具有語言簡潔,速度快等優點
1.列表推導式
2.字典推導式
3.集合推導式
# 例1; 整除3的數字列表
numders = []
for i in range(100):
    if i % 3 == 0:
        numders.append(i)
print(numders)
# 推導式實現
numders = [x for x in range(100)if x % 3 == 0]
print(numders)
# 輸出1-10的平方 推導式
pf = [x*x for x in range(1,11)]
print(pf)
# 將單詞長度大於三的轉為大寫輸出 推導式
names = ['ton','bob','hello','jerry','wendy','look','one']
name = [x.upper() for x in names if len(x)>3]
print(name)
# 求(x,y)其中x是0-5之間的偶數,y是0-5之間的奇陣列成的元組列表
aa = [(x,y) for x in range(6) if x % 2 == 0 for y in range(6) if y % 2 == 1]
print(aa)

# 求m3,6,9組成的列表
m = [[1,2,3],[4,5,6],[7,8,9]]
mm = [x for x in m for i in x if i(len(2))]
# pri求m中3,6,9組成的列表nt(mm)
print([x[2] for x in m])
#求m中斜線1,5,9組成的列表
m = [[1,2,3],[4,5,6],[7,8,9]]
print([m[x][x] for x in range(len(m))])
# 求m,n中矩陣和元素的乘積
m = [[1,2,3],[4,5,6],[7,8,9]]
n = [[2,2,2],[3,3,3],[4,4,4]]
nn = [[m[x][y]*n[x][y] for y in range(len(n))] for x in range(len(m))]
print(nn)
# 結合兩個列表的元素,如果元素之間不相等的話
comds =  []
for x in [1,2,3]:
    for y in [3,1,4]:
        if x != y:
            comds.append((x,y))
n = [1,2,3]
m = [3,1,4]
comds = [(x,y) for x in n for y in m if x != y ]
print(comds)
# 快速更換key和value
mcase = {'a': 10 ,'b': 34}
b = {n:m for m,n in mcase.items()}
print(b)
# set集合推導
squared = {x**2 for x in [1,1,2]}
print(squared)