Python字符串赋值错误

时间:2017-01-30 19:41:04

标签: python python-2.7 python-3.x

我一直在练习Python和2D列表分配。我一直在尝试创建一个日历,每天7天,每天24小时(空字符串)。

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

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

但是当我尝试分配上面的字符串时,我得到了Typeerror。

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()方法,但它仍然没有用。

2 个答案:

答案 0 :(得分:6)

try-catch

这不是一个二维列表;它使得一维列表的长度是timetable = day * 7 的7倍。

请改为尝试:

day

这使得timetable = [day[:] for _ in range(7)] 成为timetable的7份副本。复制位(day,一个完整的切片)是必要的,以避免所有引用相同列表的不同日期,这意味着如果你修改了一天所有的日子都会改变 - 可能不是你想要的。

答案 1 :(得分:1)

完成后:

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

Amber所述,你可以像以前一样尝试字符串赋值:

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

现在,第一天的第16个小时被指定为与Jane&#39;会面。