Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 附加到列表中的多个列表_Python_List_Append - Fatal编程技术网

Python 附加到列表中的多个列表

Python 附加到列表中的多个列表,python,list,append,Python,List,Append,我有一个空列表,定义如下: lis_A = [[], [], []] 在代码中的某个时刻,我需要递归地向其添加值,如下所示: lis_A[0].append(some_value0) lis_A[1].append(some_value1) lis_A[2].append(some_value2) 看起来是这样的: print lis_A [[some_value0], [some_value1], [some_value2]] 做这件事的蟒蛇式方法是什么?试试这个: lis_A = [[

我有一个空列表,定义如下:

lis_A = [[], [], []]
在代码中的某个时刻,我需要递归地向其添加值,如下所示:

lis_A[0].append(some_value0)
lis_A[1].append(some_value1)
lis_A[2].append(some_value2)
看起来是这样的:

print lis_A
[[some_value0], [some_value1], [some_value2]]
做这件事的蟒蛇式方法是什么?

试试这个:

lis_A = [[], [], []]
to_append = [1, 2, 3]

for i, e in enumerate(to_append):
    lis_A[i].append(e)

lis_A
=> [[1], [2], [3]]
如果有多个元素要附加到每个子列表中,只要小心构造
to_append
列表,这将起作用:

lis_A = [[], [], []]
to_append = [1, 2, 3, 1, 2, 3]

for i, e in enumerate(to_append):
    lis_A[i % len(lis_A)].append(e)

lis_A
=> [[1, 1], [2, 2], [3, 3]]
试试这个:

lis_A = [[], [], []]
to_append = [1, 2, 3]

for i, e in enumerate(to_append):
    lis_A[i].append(e)

lis_A
=> [[1], [2], [3]]
如果有多个元素要附加到每个子列表中,只要小心构造
to_append
列表,这将起作用:

lis_A = [[], [], []]
to_append = [1, 2, 3, 1, 2, 3]

for i, e in enumerate(to_append):
    lis_A[i % len(lis_A)].append(e)

lis_A
=> [[1, 1], [2, 2], [3, 3]]
或者,如果您不想使用无副作用的快速for循环,请使用:

from itertools import izip

for x, y in izip(lis_A, vals):
    x.append(y)
或者,如果您不想使用无副作用的快速for循环,请使用:

from itertools import izip

for x, y in izip(lis_A, vals):
    x.append(y)

我会使用字典而不是列表:

my_lists = {}
for key, some_value in process_result():
    my_list = my_lists.get(key, [])
    my_list.append(some_value)
    my_lists[key] = my_list

除了
0,1,2
之外,
键可能还有一些有意义的值,我会使用字典而不是列表:

my_lists = {}
for key, some_value in process_result():
    my_list = my_lists.get(key, [])
    my_list.append(some_value)
    my_lists[key] = my_list

除了
0,1,2

这些值是如何关联的之外,
key
可能还有一些有意义的值<代码>某些值0
某些值1
。它们是不相关的,并且是从其他过程中获得的。这就是你的意思吗?那么请出示密码。你是如何得到这些值的?我是从不同的过程中得到这些值的(读取文件中的值,使用定义的函数进行一些计算等等),代码本身是无关的。所有值都是数字,彼此完全无关。假装它们是随机数?我获取这些值的过程是如何相关的?这些值是如何相关的<代码>某些值0,
某些值1
。它们是不相关的,并且是从其他过程中获得的。这就是你的意思吗?那么请出示密码。你是如何得到这些值的?我是从不同的过程中得到这些值的(读取文件中的值,使用定义的函数进行一些计算等等),代码本身是无关的。所有值都是数字,彼此完全无关。假装它们是随机数?我获取这些值的过程是如何相关的?在这种情况下,列表理解不是一个好主意,你在列表上迭代是为了效果而不是值。第三行中创建的
None
中间列表就证明了这一点。如果您想避免副作用并使用for循环,最好使用一个简单的
for
@scarLópez,您应该使用:
for x,y in izip(lis_a,vals):x.append(y)
。它比enumerate版本快50%。列表理解不是一个好主意。在这种情况下,您迭代列表是为了效果,而不是为了值。第三行中创建的
None
中间列表就证明了这一点。如果您想避免副作用并使用for循环,最好使用一个简单的
for
@scarLópez,您应该使用:
for x,y in izip(lis_a,vals):x.append(y)
。它比
enumerate
版本快50%。