回答編集履歴
2
リスト内包表記からジェネレータ式に変更
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
>>> spam = ['apples', 'bananas', 'tofu', 'cats']
|
8
8
|
|
9
|
-
>>> "".join(
|
9
|
+
>>> "".join(e for l in [len(spam)] for i, word in enumerate(spam) for e in [word, ", " if i < l-2 else (" and " if i == l-2 else "")])
|
10
10
|
|
11
11
|
'apples, bananas, tofu and cats'
|
12
12
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
### 追記
|
20
20
|
|
21
|
-
質問文を読み直したら、「関数を
|
21
|
+
質問文を読み直したら、「関数を書きなさい」を見落としていたことに気づきました。
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
>>> spam = ['apples', 'bananas', 'tofu', 'cats']
|
28
28
|
|
29
|
-
>>> f = lambda spam : "".join(
|
29
|
+
>>> f = lambda spam : "".join(e for l in [len(spam)] for i, word in enumerate(spam) for e in [word, ", " if i < l-2 else (" and " if i == l-2 else "")])
|
30
30
|
|
31
31
|
>>> f(spam)
|
32
32
|
|
1
追記
test
CHANGED
@@ -13,3 +13,35 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
```
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
### 追記
|
20
|
+
|
21
|
+
質問文を読み直したら、「関数を定義せよ」だったのを見落としていました。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
```python
|
26
|
+
|
27
|
+
>>> spam = ['apples', 'bananas', 'tofu', 'cats']
|
28
|
+
|
29
|
+
>>> f = lambda spam : "".join([e for l in [len(spam)] for i, word in enumerate(spam) for e in [word, ", " if i < l-2 else (" and " if i == l-2 else "")]])
|
30
|
+
|
31
|
+
>>> f(spam)
|
32
|
+
|
33
|
+
'apples, bananas, tofu and cats'
|
34
|
+
|
35
|
+
>>> f(list("ABCDEFG"))
|
36
|
+
|
37
|
+
'A, B, C, D, E, F and G'
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
> ※また、「関数は任意のリスト値を渡してもよい」とはどういうことでしょうか?
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
長さが任意なのかもしれないし、型が任意という可能性もあるでしょうね。
|