2017-01-30 21 views
-1

私はPythonと2Dリストの割り当てを練習しています。私は毎日24時間(空文字列)を持つ7日間のカレンダーを作成しようとしています。Python文字列の割り当てエラー

day = [""] * 24 
timetable = day * 7 

    timetable[0][15] = "meeting with Jane" 

しかし、上記の文字列を割り当てようとすると、タイプエラーが発生します。

Traceback (most recent call last): 
File "C:\Users\workspace\test\2D.py", line 7, in <module> 
timetable[0][15] = "meeting with Jane" 
TypeError: 'str' object does not support item assignment 

私は文字列を理解しては不変ですので、私は、リストの.append()方法を使用しますが、まだそれは動作しませんでした値を再割り当てすることはできません。

+0

ここで文字列を割り当てるにはどうすればいいですか?上記のエラーが表示されます。 – skyrocker

答えて

6
timetable = day * 7 

これは2次元のリストを作成しません。 dayの7倍の1次元リストを作成します。

は、代わりにこれを試してみてください:

timetable = [day[:] for _ in range(7)] 

これはtimetabledayの7つのコピーであるリストであることになります。コピービット([:]、フルスライス)は、同じリストを参照する異なる日を避けるために必要です。つまり、ある日を変更した場合、すべての日が変更されます。おそらくあなたが望むものではありません。

+0

ありがとう、いつか私はいつか文字列を割り当てます。 例:13時間後に火曜日に文字列を割り当てたい場合、どうすればよいですか? – skyrocker

1

行った後:Amberが言ったように

timetable = [day[:] for _ in range(7)] 

は、あなたが以前にしようとしたとして、文字列の割り当てを行うことができます。

timetable[0][15] = "meeting with Jane" 

を今すぐ最初の日は、との会合」として割り当てられた16時間を持っていますジェーン '

関連する問題