teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

内容追記

2018/04/30 02:53

投稿

kazto
kazto

スコア7196

answer CHANGED
@@ -1,2 +1,24 @@
1
1
  `change_trains(a,b)`を呼ぶときに引数に与えているものが意図しないものになっているようです。
2
- その辺のコードを追記いただくと明確になるかもしれません。
2
+ その辺のコードを追記いただくと明確になるかもしれません。
3
+
4
+ ---
5
+ 追記:
6
+
7
+ 引数に与えているリストの要素は文字列です。
8
+ ```Python
9
+ denentoshi = ["渋谷","池尻大橋",(以下略)
10
+ ```
11
+ このリストをfor文で展開すると、i、jに入る要素は`"渋谷"`、`"池尻大橋"`などの文字列となります。
12
+
13
+ リストのスライス表記に期待されるのは整数ですが、意図せず文字列が入っていますので、
14
+ > c = a[:i] + b[i:]
15
+
16
+ ここでエラーとなります。
17
+
18
+ どう改善したらいいかと言えば、enumerate関数が有用です。
19
+ ```Python
20
+ for ix,x in enumerate(a):
21
+ for iy, y in enumerate(b):
22
+ if x == y:
23
+ c - a[:ix] + b[iy:]
24
+ ```