回答編集履歴

4

文字列が長いため、修正

2021/07/19 07:50

投稿

BeatStar
BeatStar

スコア4962

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
 
60
60
 
61
- |対象|重複を許すかどうか|データの変更が可能かどうか|データの並び|内部実装|数学的演算|
61
+ |対象|重複を許すかどうか|データの変更|データの並び|内部実装|数学的演算|
62
62
 
63
63
  |:--|:--:|:--:|:--:|:--:|--:|
64
64
 

3

修正

2021/07/19 07:50

投稿

BeatStar
BeatStar

スコア4962

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

2021/07/19 07:49

投稿

BeatStar
BeatStar

スコア4962

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

編集

2021/07/19 07:34

投稿

BeatStar
BeatStar

スコア4962

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