python不可變集合
阿新 • • 發佈:2019-01-14
對應於元組(tuple
)與列表(list
)的關係,對於集合(set
),Python提供了一種叫做不可變集合(frozen set
)的資料結構。
使用 frozenset
來進行建立:
s = frozenset([1, 2, 3, 'a', 1])
s
frozenset({1, 2, 3, 'a'})
與集合不同的是,不可變集合一旦建立就不可以改變。
不可變集合的一個主要應用是用來作為字典的鍵,例如用一個字典來記錄兩個城市之間的距離:
flight_distance = {} city_pair = frozenset(['Los Angeles', 'New York']) flight_distance[city_pair] = 2498 flight_distance[frozenset(['Austin', 'Los Angeles'])] = 1233 flight_distance[frozenset(['Austin', 'New York'])] = 1515 flight_distance
{frozenset({'Austin', 'New York'}): 1515,
frozenset({'Austin', 'Los Angeles'}): 1233,
frozenset({'Los Angeles', 'New York'}): 2498}
由於集合不分順序,所以不同順序不會影響查閱結果:
flight_distance[frozenset(['New York','Austin'])]
1515
flight_distance[frozenset(['Austin','New York'])]
1515