これはよくある質問であり、set要素のハッシュ可能なプロパティを取り巻くトピックについて議論する投稿が多数あることを知っていますが、setが1Dリストを受け入れることができるが、多次元リストを受け入れて初期化できない理由を理解しようとしています。
次のコードを見てください。Case1、Case2は機能します(1Dリストを受け入れます)が、Case3は機能しません(2Dリストを受け入れます)。セットの初期化におけるディメンションの役割はどのようになりますか。
#Case1:
cities = set(["Frankfurt", "Basel","Freiburg"])
print(cities)
#Case2:
citylist = list(["Frankfurt", "Basel","Freiburg"])
setofcitites = set(citylist)
print(setofcitites)
#Case3:
more_cities = set([["Frankfurt", "Basel","Freiburg"], ["Dubai", "Toronto","Sydney"]])
print(more_cities)
ケース1と2の場合、リストはハッシュされていません。リストは繰り返され、その要素はハッシュされます。ハッシュされた要素はリストではなく、それ以外の場合はハッシュ可能であるため、問題ありません。
ただし、ケース3の場合、外側のリストは以前と同じように繰り返されますが、リストの各要素は別のリストであり、ハッシュ化が試みられます。ご存知のように、それはうまく終わらないでしょう。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加