'' STR'对象不支持项目分配' python 2

时间:2015-02-08 20:09:57

标签: python-2.7

所以这是我的代码,它正在试图改变汽车登记牌,开始时间和结束时间(在完整的代码中,它将打印在底部)。

data = str(list)
sdata = str(list)
edata = str(list)
current = 0
repeats = input ('How many cars do you want to measure?')

def main():
    global current
    print (current)
    print ''
    print ''
    print '---------------------------------------'
    print '---------------------------------------'
    print 'Enter the registration number.'
    data[current] = raw_input('    ')
    print 'Enter the time it passed Camera 1. In this form HH:MM:SS'
    sdata[current]   = raw_input('    ')
    print 'Enter the time it passed Camera 2. In this form HH:MM:SS'
    edata[current]   = raw_input ('    ')
    print '---------------------------------------'
    print''
    print''
    print''
    print 'The Registration Number is :'
    print data[current]
    print''
    print 'The Start Time Is:'
    print sdata[current]
    print''
    print 'The End Time Is:'
    print edata[current]
    print''
    print''
    raw_input('Press enter to confirm.')
    print'---------------------------------------'
    d = d + 1
    s = s + 1
    a = a + 1
    current  = current = 1

while current < repeats:
    main()

当我运行它并且它到达:

data[current] = raw_input('    ')

我收到错误消息'TypeError:'str'对象不支持项目分配' 提前感谢您的帮助。 :d

2 个答案:

答案 0 :(得分:0)

错误很明显。 str object does not support item assignment

python中的字符串是不可变的。您执行

时已将数据转换为字符串
data = str(list)

所以,通过

data["current"] = raw_input()

您正在尝试为字符串分配一些值,这在python中是不受支持的。

如果您希望数据成为列表,

data = list()

data = []

将有所帮助,从而防止错误

答案 1 :(得分:0)

在作业期间不要使用str

data = str(list)
sdata = str(list)
edata = str(list)

改为使用

data = []
sdata = []
edata = []

以及稍后在打印时使用str,如果你想要

print str(data[current])   

aswin表示它不可变,所以不要复杂它