在整数列表中的每个项目后面加上“,”

时间:2019-05-12 16:29:10

标签: python python-3.x append iteration

我想在整数列表中的每个项目后附加“,”,然后添加项目索引。

我知道我需要先将整数转换为字符串,但是即使这样做,它也无法正常工作:

(我使用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",....]

3 个答案:

答案 0 :(得分:1)

可能有人可以链接到一个重复的问题,但是我还不知道该如何解决。

您需要list comprehensionsenumerate 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))

这是您问题的解决方案,如果我正确理解,您希望为列表“”中的每个项目添加。