in
ได้เร็วกว่าลิสต์มาก{ }
คร่อมแทน
s = {3,3,4,1,5,9,3,9,7,6}
print(s) # ได้ {1, 3, 4, 5, 6, 7, 9}
a = [3,3,4,1,5,9,3,9,7,6]
s = set(a)
print(s) # ได้ {1, 3, 4, 5, 6, 7, 9}
print(set('Der ferne Himmel jenseits des Fensters'))
{' ', 'n', 'd', 'r', 'm', 'F', 'l', 's', 'j', 't', 'f', 'H', 'D', 'e', 'i'}
len({5,3,7,1,1,1,1,1,3}) # ได้ 4
S = {1,5,17,81,201,399,812,1197}
print(5 in S) # ได้ True
print(max({3.7,8.9,11.2,0.7,12.6})) # ได้ 12.6
print(sum({3.7,8.9,11.2,0.7,12.6}))
[ ]
เช่นเดียวกับลิสต์หรือทูเพิลในการเข้าถึงข้อมูลได้
s = {4,6,7,8,10,19}
print(s[2]) # ได้ TypeError: 'set' object does not support indexing
for
s = {4,6,7,8,10,19}
for c in s:
print(c,end=' ')
4 6 7 8 10 19
.add
s = {4,7,9,13,16,21,28}
s.add(3)
print(s) # ได้ {3, 4, 7, 9, 13, 16, 21, 28}
s = {4,7,9,13,16,21,28}
s.add(16)
print(s) # ได้ {4, 7, 9, 13, 16, 21, 28}
.update
แล้วใส่เซ็ตหรือลิสต์ลงไปก็ได้ และถึงใส่ค่าที่มีอยู่แล้วลงไปก็ไม่มีผล
s = {11,31,42,44}
s.update([16,31,55])
s.update({2,44})
print(s) # ได้ {2, 42, 11, 44, 16, 55, 31}
.remove
หรือ .discard
สองตัวนี้ต่างกันแค่ว่า .remove
นั้นถ้าไม่มีข้อมูลตัวที่ใส่ลงไปจะขึ้นขัดข้อง แต่ .discard
ถึงไม่มีก็ไม่เกิดขัดข้อง
s = {2.1,4.5,6.7,13.6,31.1,34.5}
s.remove(2.1)
print(s) # ได้ {34.5, 4.5, 6.7, 13.6, 31.1}
s.discard(6.7)
print(s) # ได้ {34.5, 4.5, 13.6, 31.1}
s.discard(21.8) # ไม่เกิดอะไรขึ้น
s.remove(21.8) # ได้ KeyError: 21.8
s2
เป็นซับเซ็ตของ s1
) คือ s2 <= s1
s1 = {15,30,40}
s2 = {30}
print(s2 <= s1) # ได้ True
.issubset
print(s2.issubset(s1)) # ได้ True
s2
เป็นซูเปอร์เซ็ตของ s1
) คือ s2 >= s1
print(s2 >= s1) # ได้ False
.issuperset
print(s2.issuperset(s1)) # ได้ False
s1
เท่ากับ s2
ด้วย แต่หากไม่ต้องการให้รวมก็อาจใช้ > หรือ <
.union
, .intersection
, .difference
s1 = {2,3,4,5}
s2 = {4,5,6,7,8,9,10}
print(s1.union(s2)) # ได้ {2, 3, 4, 5, 6, 7, 8, 9, 10}
print(s1.intersection(s2)) # ได้ {4, 5}
print(s1.difference(s2)) # ได้ {2, 3}
print(s2.difference(s1)) # ได้ {8, 9, 10, 6, 7}
print(s1.symmetric_difference(s2)) # ได้ {2, 3, 6, 7, 8, 9, 10}
|
อินเทอร์เซ็กชันใช้ &
หาส่วนต่างใช้ -
print(s1 | s2) # ได้ {2, 3, 4, 5, 6, 7, 8, 9, 10}
print(s1 & s2) # ได้ {4, 5}
print(s1 - s2) # ได้ {2, 3}
print(s2 - s1) # ได้ {8, 9, 10, 6, 7}
print(s1 ^ s2) # ได้ {2, 3, 6, 7, 8, 9, 10}
a = [3,3,4,1,5,9,3,9,7,6,1,6,6]
print(set(a)) # ได้ {1, 3, 4, 5, 6, 7, 9}
sorted
โดยใส่คีย์เวิร์ด key
ให้ใช้เลขดัชนีของลิสต์เดิมเป็นตัวจัดเรียง
print(sorted(set(a), key=a.index)) # ได้ [3, 4, 1, 5, 9, 7, 6]
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ