
No.3ベストアンサー
- 回答日時:
質問の意味が良く分かりませんが
s = set([1,2,3)])
は問題なく出来るけど
s = set()
s.add([1,2,3])
は出来ない。pythonはエラーを吐きます。
リストはハッシュ不能だから、集合の要素にはなれない。
No.2
- 回答日時:
pythonではset()は①重複した要素がない②要素に順番がないという特徴があります。
例
myset1 = set([1,2,3])
myset2 = set([1,2,3,3,2,1])
print(myset1)
print(myset2)
実行結果
{1, 2, 3}
{1, 2, 3}
list型をset型に入れるとどうなるでしょうか。
例
mylist = [11, 1, 3, 5, 3, 6, 7, 8, 9, 23, 23, 5]
myset = set(mylist)
print(myset)
結果
{1, 3, 5, 6, 7, 8, 9, 11, 23}
重複要素は消えてしまいます。順番も変わってしまいます。
このようなことが起こるので、こういうことをやるためにやるのでなければ、やらない方が安全です。ソーステキストを追いかけても不具合に気付きにくいです。
No.1
- 回答日時:
Pythonのオブジェクトには「ハッシュ可能」かどうか、という属性があります。
https://docs.python.org/ja/3/glossary.html#term- …
> (リストや辞書のような) ミュータブルなコンテナはハッシュ不可能です。
set には、ハッシュ可能なオブジェクトしか納めることができません。
https://docs.python.org/ja/3/library/stdtypes.ht …
> et オブジェクトは、固有の hashable オブジェクトの順序なしコレクションです。
リストはハッシュ不可能なので、setには入れられません。
ハッシュ可能/不可能
ミュータブル/イミュータブル
といった言葉は、重要なので、じっくり勉強してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
連想配列のサイズ制限
-
短いハッシュの作り方
-
ハッシュ値が一致したデータは...
-
VBA横データを縦にしたいです
-
Dim flag(4) as boolean で配列...
-
VBAでの一時停止と再開の方法
-
UWSCに制限時間を付けたいです
-
テキストボックスの名前に変数...
-
Strawberry Perl for Windows ...
-
C言語でファクト関数を使わずに...
-
xmplayの使い方
-
エクセルVBAでTransposeの不思議
-
マクロ Publicでの配列定義
-
ループフリー
-
Do whileでExitせず、ループの...
-
csh foreachで「*」でエラ...
-
Can't use string ("0") as an ...
-
CやJAVa,Rubyなどプログラミン...
-
GIFアニメをループさせたくない
-
CSVファイルの特定の行だけを読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックデジットについて
-
短いハッシュの作り方
-
まったく同じファイルのハッシ...
-
ハッシュ検索はなぜ速い
-
ハッシュ値が一致したデータは...
-
ハッシュマーク以降のアドレス取得
-
ハッシュリストって単にハッシ...
-
ハッシュ値によるファイルの同...
-
英語でのシャープとコメの呼び...
-
計算されたハッシュ、レポート...
-
列挙型と連想配列の違いを教え...
-
文字列を変数名として扱う方法
-
perl入門
-
一意(ユニーク)かつ、ソート...
-
連想配列のサイズ制限
-
Perlでの配列のソートについて...
-
ハッシュ値を取ったらその取っ...
-
Perlで変数に代入された文字の...
-
正規表現を使ってコードを短く...
-
エラーが出ます。どこが間違っ...
おすすめ情報