??
Python? ??? ?? ??? ???? ???? ?? ??? ??? ???? ?? ?????. ?? ???? ?? ??? ? ?? ?? ??? ?????. Set? dict? ????? set? ?? ???? ????.
1. ?? ??
??? ????? ?? ??? ??? ???? ???
set1=set([123,456,789]) print(set1)
?? ??:
{456, 123, 789}
??? ?? ?? [123,456,789]? ???? ???? {456, 123, 789} ? ?? ??? 3?? ?? 456, 123, 789? ??? ?? ????? ????. ?? ??? ???? ??? ?? ??? ???? ????. ??? ??? ????.
? ?? ?, ?? ??? ??? ?? ??? ??????. ?? ??? ?? tuple(??)? ??? ????, list(???)? ???? ????, dict(????)? ???? ????? ?? ? ? ????. dict? ??? ??? dict? ?-? ?? ???? ?? set? ? ?? ???? ??? ??? ? ????.
dict(??)? ??? ? ?? ?? ?? ?-? ??? ????? ?? ??? ???? ???? ?????? ?? ?????.
set1=set([123,456,789,123,123]) print(set1)
?? ??:
{456, 123, 789}
2. set? ?? ??
add(key) ???? ?? set? ??? ??? ? ???, ????? ??? ?? ??? ??? ????.
set1=set([123,456,789]) print(set1) set1.add(100) print(set1) set1.add(100) print(set1)
?? ??? ??? ????. :
{456, 123, 789} {456, 123, 100, 789} {456, 123, 100, 789}
3. Set? ??? ?????
remove(key) ???? ?? set? ??? ??? ? ????
set1=set([123,456,789]) print(set1) set1.remove(456) print(set1)
?? ??:
{456, 123, 789} {123, 789}
4 set? ???? ???. ???? ?? ??? ??? ???? ?? ????? ? ??? ??? ???? ??, ??, ?? ? ?? ??? ??? ? ????.
?:
set1=set('hello') set2=set(['p','y','y','h','o','n']) print(set1) print(set2) # 交集 (求兩個(gè) set 集合中相同的元素) set3=set1 & set2 print('\n交集 set3:') print(set3) # 并集 (合并兩個(gè) set 集合的元素并去除重復(fù)的值) set4=set1 | set2 print('\n并集 set4:') print(set4) # 差集 set5=set1 - set2 set6=set2 - set1 print('\n差集 set5:') print(set5) print('\n差集 set6:') print( set6) # 去除海量列表里重復(fù)元素,用 hash 來(lái)解決也行,只不過感覺在性能上不是很高,用 set 解決還是很不錯(cuò)的 list1 = [111,222,333,444,111,222,333,444,555,666] set7=set(list1) print('\n去除列表里重復(fù)元素 set7:') print(set7)?? ??:
{'h', 'l', 'e', 'o'} {'h', 'n', 'o', 'y', 'p'} 交集 set3: {'h', 'o'} 并集 set4: {'h', 'p', 'n', 'e', 'o', 'y', 'l'} 差集 set5: {'l', 'e'} 差集 set6: {'p', 'y', 'n'} 去除列表里重復(fù)元素 set7: {555, 333, 111, 666, 444, 222}