回答編集履歴
4
文字列が長いため、修正
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
|対象|重複を許すかどうか|データの変更
|
61
|
+
|対象|重複を許すかどうか|データの変更|データの並び|内部実装|数学的演算|
|
62
62
|
|
63
63
|
|:--|:--:|:--:|:--:|:--:|--:|
|
64
64
|
|
3
修正
test
CHANGED
@@ -54,21 +54,23 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
(ちなみにC++のstd::setは木構造で表現しているっぽい)
|
57
|
+
(ちなみにC++のstd::setは[ここ](http://vivi.dyndns.org/tech/cpp/set.html)によると木構造で表現しているっぽい)
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
|対象|重複を許すかどうか|データの変更が可能かどうか|数学的演算|
|
61
|
+
|対象|重複を許すかどうか|データの変更が可能かどうか|データの並び|内部実装|数学的演算|
|
62
62
|
|
63
|
-
|:--|:--:|:--:|--:|
|
63
|
+
|:--|:--:|:--:|:--:|:--:|--:|
|
64
64
|
|
65
|
-
|List|許す|可能|不可能|
|
65
|
+
|List|許す|可能|入力順|配列|不可能|
|
66
66
|
|
67
|
-
|Set|許さない|可能|可能|
|
67
|
+
|Set|許さない|可能|順不同|ハッシュテーブル|可能|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
71
|
参考: [公式ドキュメント](https://docs.python.org/ja/3/tutorial/datastructures.html)
|
72
|
+
|
73
|
+
参考: [Pythonのset(集合)の表示順序について](https://ja.stackoverflow.com/questions/55986/python%E3%81%AEset%E9%9B%86%E5%90%88%E3%81%AE%E8%A1%A8%E7%A4%BA%E9%A0%86%E5%BA%8F%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)
|
72
74
|
|
73
75
|
|
74
76
|
|
@@ -81,3 +83,9 @@
|
|
81
83
|
|
82
84
|
|
83
85
|
最悪時、(Pythonではあり得るかどうかはわかりませんが) [実例](https://qiita.com/neko_machi/items/d620c4a8958e74df3550)のようなこともありますから。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
上記の表のように、『どういう内部処理か』とか『強みや弱み』とかを理解して、
|
90
|
+
|
91
|
+
『**仕様によって決める**』のがベターですね。
|
2
追記1
test
CHANGED
@@ -8,4 +8,76 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
+
-------------
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
[追記1]
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
# やっとPCで出来たので追記
|
20
|
+
|
21
|
+
|
22
|
+
|
11
|
-
|
23
|
+
すでに良い回答が付いているので二番煎じになりますが、書いておきます。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
Pythonのリストはデータ構造とアルゴリズムの**リスト構造ではなく**、他の言語でいう「**配列**」のようです。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
List()は、リストオブジェクト(他の言語だと配列)を作りだすものです。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
一方、Setは、(内部構造は分かりませんが)「数Aでの『集合と論理』での集合」を表すもののようです。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
なので、Setは『**同じデータは共存できない**』です。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
たとえば、an = { 1, 1, 2, 3, 2, 4 } は、1 と 2 がそれぞれダブっています。
|
44
|
+
|
45
|
+
なので、セットしたとしても、
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
an = { 1, 2, 3, 4 } になるはずです。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
つまり、本来なら要素数 6 になるはずが、**重複を許さない**ため、要素数 4 となります。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
(ちなみにC++のstd::setは木構造で表現しているっぽい)
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|対象|重複を許すかどうか|データの変更が可能かどうか|数学的演算|
|
62
|
+
|
63
|
+
|:--|:--:|:--:|--:|
|
64
|
+
|
65
|
+
|List|許す|可能|不可能|
|
66
|
+
|
67
|
+
|Set|許さない|可能|可能|
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
参考: [公式ドキュメント](https://docs.python.org/ja/3/tutorial/datastructures.html)
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
データ列中で出てくるデータが重複しないならListでもSetでもいいかもしれません。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
でも、ちゃんと理解した上で使うべきかも。
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
最悪時、(Pythonではあり得るかどうかはわかりませんが) [実例](https://qiita.com/neko_machi/items/d620c4a8958e74df3550)のようなこともありますから。
|
1
編集
test
CHANGED
@@ -1,43 +1,3 @@
|
|
1
|
-
> 調べてみたのですがlist()を使う意味について
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
それなら、『どのように調べたか』や
|
6
|
-
|
7
|
-
『参考にしたサイトのURL』とかを出しましょう。
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
そういう質問する人は大抵**逆ギレ**します。
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
私ら回答者が参考文献とかを提示しても
|
16
|
-
|
17
|
-
「そのサイト読んだけどわかんねーから聞いているんだろが!!!」とかみたいに逆ギレする。
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
いや、回答者は質問者と同じ環境にはないからわかるわけないし、
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
赤の他人なんだから提示された情報からしか読み取れません。
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
それを『プロなんだからわかるだろ』はもはや暴言です。
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
それなら医者はなんなんでしょうか。
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
----
|
38
|
-
|
39
|
-
|
40
|
-
|
41
1
|
まず今回の質問を答える前に**データ構造を理解すべき**だと提案します。
|
42
2
|
|
43
3
|
|