やりたいこと
文字列が格納された偶数長のリスト:
Python
1l = ["A", "B", "C", "D", "E", "F"]
に対して、奇数番目と偶数番目の要素を左から入れ替える処理を実装し、
Python
1l = ["B", "A", "D", "C", "F", "E"]
のように出力したい。
試みたことと結果
リストに対し、
Python
1a = [0,1,2,3] 2a[0], a[1] = a[1], a[0] 3print(a) #[1, 0, 2, 3]
のような代入文でswapが実装できたため、これを利用して
Python
1l = ["A", "B", "C", "D", "E", "F"] 2for i in range(len(l)): 3 l[i], l[i+(-1)**i] = l[i+(-1)**i], l[i] 4print(l)
というコードを書いたのですが、出力が
['A', 'B', 'C', 'D', 'E', 'F']
となっていて、意図したようにswapされません。
質問
何故うまくいかないのでしょうか?
for文のまとまりの中だと、オリジナルではなくコピーのリストに対してswapが行われるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。