1

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

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

但我想要一些东西,比如

    for i, num in enumerate(list):
        value_i.append(num)

我怎么能这样做呢?

4

4 回答 4

3

不是列表,而是关闭:

>>> zip([1, 2, 5])
[(1,), (2,), (5,)]
于 2013-09-12T03:00:33.593 回答
3
>>> lst = [1,2,3,4]
>>> [list(x) for x in zip(lst)]
[[1], [2], [3], [4]]

顺便说一句,您不应该将list其用作变量名。

于 2013-09-12T03:02:54.080 回答
3

为什么不简单:

>>> [ [e] for e in [1, 2, 3] ]
[[1], [2], [3]]
于 2013-09-12T03:05:10.830 回答
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方法更有效。

于 2013-09-12T03:07:30.987 回答