回答編集履歴
1
修正
test
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
元のリストの要素が**全て文字列であった場合**(註)のサンプルコードです。
|
16
16
|
|
17
17
|
```Python
|
18
|
+
|
19
|
+
# ここでは ↓ これらの要素 ↓ も文字列とする
|
18
20
|
|
19
21
|
src = ['physics', 'chemistry', '1997', '2000']
|
20
22
|
|
@@ -36,7 +38,7 @@
|
|
36
38
|
|
37
39
|
|
38
40
|
|
39
|
-
あるいは
|
41
|
+
あるいはリスト内包表記を用います。
|
40
42
|
|
41
43
|
```Python
|
42
44
|
|
@@ -56,10 +58,42 @@
|
|
56
58
|
|
57
59
|
|
58
60
|
|
61
|
+
はたまた以下のように高階関数を用います。
|
62
|
+
|
63
|
+
```Python
|
64
|
+
|
65
|
+
src = 略
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
dst = list(
|
70
|
+
|
71
|
+
filter( # itertools.filterfalse の方が否定論理で書ける分直感的かも
|
72
|
+
|
73
|
+
lambda e: 'phy' not in e, src
|
74
|
+
|
75
|
+
)
|
76
|
+
|
77
|
+
)
|
78
|
+
|
79
|
+
print(dst)
|
80
|
+
|
81
|
+
```
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
個人的には内包表記をお勧めしますが、
|
86
|
+
|
87
|
+
for文の方が分かり良いならば無理に活用する必要は無いでしょう。少しずつ慣れていけば良いです。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
---
|
92
|
+
|
59
|
-
**註:** 質問で提示されている例に反する
|
93
|
+
**註:** 質問で提示されている例に反する前提を敢えて置いたのには二つ理由があります。
|
60
94
|
|
61
95
|
0. リストの要素の型は揃っている方が一般に扱いやすいため。
|
62
96
|
|
63
|
-
揃わないのであれば
|
97
|
+
揃わないのであれば同じリストに詰めず、クラスやタプルを活用した方が良いです。
|
64
98
|
|
65
99
|
0. 丸投げ回答を避けるため。
|