我想在整数列表中的每个项目后附加“,”,然后添加项目索引。
我知道我需要先将整数转换为字符串,但是即使这样做,它也无法正常工作:
(我使用Python 3.7.3)
for element in mylist:
element = str(element)
element = "{0},".format(element)
element = element + mylist.index(element)
我想要什么:
mylist = ["97,0", "569,1", "39,2", "230,3",....]
答案 0 :(得分:1)
可能有人可以链接到一个重复的问题,但是我还不知道该如何解决。
您需要list comprehensions和enumerate function。
new_list = ["{0},{1}".format(item, index) for (index, item) in enumerate(old_list)]
答案 1 :(得分:1)
如果您绝对需要更改列表,则可以遍历该列表的副本并执行该操作。
for i, val in enumerate(mylist[:]): # note the empty slice there -- that creates a whole copy!
mylist[i] = f"{val},{i}"
从技术上讲,由于您没有添加或删除元素,因此可以在没有该副本的情况下执行此操作
for i, val in enumerate(mylist):
mylist[i] = f"{val},{i}"
但这是一个危险的习惯,如果您不完全了解您要迭代的列表可以做什么和不可以做什么,就会陷入危险的习惯。如果您的目标是但也要删除第十个元素(或其他),则必须进行复制。同样,如果您想在值97
之前插入一个新元素,等等。
作为一般的最佳实践,应尽可能避免对列表进行变异,并按照ShapeOfMatter's answer
的建议使用列表理解来生成新列表答案 2 :(得分:0)
mylist = [97,0, 569,1, 39,2, 230,3]
for items in mylist:
(str(items))
print('\"{0}\"'.format(items))
这是您问题的解决方案,如果我正确理解,您希望为列表“”中的每个项目添加。