我有一个列表,我想在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
。
例如
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]
使用列表理解。
newlist = ['literal' + x for x in oldlist]
因为elem
是列表中的值,而不是对列表中位置的引用。(我参考你的第二个例子)
尝试列表理解:
newlist = [item + literal for item in oldlist]
此外,请记住,列表索引是从零开始编号的,这意味着最大索引等于len(list) - 1