Python-对于每个for循环迭代,附加到不同的列表中

时间:2013-09-12 02:58:22

标签: python list for-loop

我有一个for循环,它正在获取数据并将其附加到列表中,但是对于for循环的每次迭代,我希望它附加到不同的列表中。有没有办法做到这一点?

    value = []
    for i in list:
        value.append(i)

但我想要像

这样的东西
    for i, num in enumerate(list):
        value_i.append(num)

我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

不是列表,但是关闭:

>>> zip([1, 2, 5])
[(1,), (2,), (5,)]

答案 1 :(得分:3)

>>> lst = [1,2,3,4]
>>> [list(x) for x in zip(lst)]
[[1], [2], [3], [4]]

顺便说一句,你不应该使用list作为变量名。

答案 2 :(得分:3)

为什么不简单:

>>> [ [e] for e in [1, 2, 3] ]
[[1], [2], [3]]

答案 3 :(得分:1)

假设您已经有一系列列表

my_lists = [list1, list2, list3, …, listN]

和来源列表

my_sources = [val1, val2, val3, …, valN]

你想要的是

for lst, src in zip(my_lists, my_sources):
    lst.append(src)

您也可以通过索引执行此操作:

for i in range(len(lst)):
    my_lists[i].append(my_sources[i])

后者可能看起来不那么Pythonic,但它具有可读性,可能比zip方法更有效。