我有一个列表,我想在newlist[i] = 'literal' + oldlist[i]
。
我尝试过像:
这样的代码i = 1
for elem in oldlist:
newlist[i] = 'literal' + oldlist[i]
i += 1
i = 1
for elem in newlist:
elem = 'literal' + oldlist[i]
i += 1
并且许多类似的尝试仍然会出现诸如“无法分配给函数调用”等错误。我的代码应该如何?
答案 0 :(得分:4)
列表从零开始,意味着列表中的第一项位于索引0
。
如,
l = [1, 2, 3, 4, 5]
print(l[0]) # 1
print(l[1]) # 2
您正在1
开始编制索引,因此您的第一项永远不会被更改。
虽然您的代码不符合规范的“索引循环”格式。看起来应该更像这样:
for i in range(len(oldlist)):
newlist[i] = 'literal' + oldlist[i]
但更好的方法是使用列表理解:
newlist = ['literal' + olditem for olditem in oldlist]
答案 1 :(得分:3)
使用列表理解。
newlist = ['literal' + x for x in oldlist]
答案 2 :(得分:1)
因为elem
是列表中的值,而不是对列表中位置的引用。 (我参考你的第二个例子)
答案 3 :(得分:1)
尝试列表理解:
newlist = [item + literal for item in oldlist]
另外,请记住列表索引从零开始编号,这意味着最大索引等于len(list) - 1