やりたいこと
書いたコード
うまく動いたもの: A
python
1data = [ 2 ['apples', 'oranges', 'cherries', 'banana'], 3 ['Alice', 'Bob', 'Carol', 'David'], 4 ['dogs', 'cats', 'moose', 'goose'] 5] 6 7# detectMaxlen_and_rightJusting 8for _i in data: 9 _l = 0 10 for _j in _i: 11 if len(_j) > _l: 12 _l = len(_j) 13 # rjust 14 for _j in range(len(_i)): 15 _i[_j] = _i[_j].rjust(_l + 1) 16 17# tranceTable 18n = 0 19for j in range(len(data[n])): 20 for i in range(len(data)): 21 print(data[i][j], end='') 22 if i == len(data) - 1: 23 print() # print('', end=' ') 24 n += 1
リストへの代入に失敗した残念なほう: B(抜粋)
python
1# detectMaxlen_and_rightJusting 2# 省略 3 # rjust 4 for _j in _i: 5 _j = _j.rjust(_l + 1)
疑問
なぜ,Aは代入が成功し,Bは失敗するのかがよく分かりません
簡略化した(失敗する方の)コード:
python
1list = ['a', 'b', 'c'] 2for item in list: 3 item += '_'
print(list)すると上書き前のリストが返ってきます.なぜでしょうか?
あと,
python
1# detectMaxlen_and_rightJusting 2# 省略 3 # rjust 4 for _j in len(_i): 5 _i[_j] = _i[_j].rjust(_l + 1)
のように,range()抜きで書いたときに動かないのはなぜでしょうか?
(for i in 10 とかは回った気がするのに...)-->気のせいでした:inの後はシーケンス以外入れちゃダメな仕様?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/13 07:30