gpt4 book ai didi

python - 如何将列表作为二维列表中的列插入?

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:02 25 4
gpt4 key购买 nike

给定一个列表和一个二维列表(长度可能相同也可能不同)

list1 = [1,2,3,4]

list2 = [1,2]

table = [[1,2,0],
[3,4,1],
[4,4,4]]

我想将列表作为一列附加到二维列表中,从而充分管理空值。

result1 = [[1,2,0,         1],
[3,4,1, 2],
[4,4,4, 3],
[None,None,None,4]]

result2 = [[1,2,0, 1],
[3,4,1, 2],
[4,4,4,None]]

这是我到目前为止所拥有的:

table = [column + [list1[0]] for column in table]

但是我在使用迭代器代替 0 时遇到了语法问题。

我在想这样的事情:

table = [column + [list1[i]] for column in enumerate(table,i)]

但是我得到一个元组连接到元组TypeError。我认为旋转表格然后添加一行并向后旋转可能是个好主意,但我无法正确处理大小问题。

最佳答案

使用生成器函数和 itertools.izip_longest :

from itertools import izip_longest

def add_column(lst, col):

#create the list col, append None's if the length is less than table's length
col = col + [None] * (len(lst)- len(col))

for x, y in izip_longest(lst, col):
# here the if-condition will run only when items in col are greater than
# the length of table list, i.e prepend None's in this case.
if x is None:
yield [None] *(len(lst[0])) + [y]
else:
yield x + [y]


print list(add_column(table, list1))
#[[1, 2, 0, 1], [3, 4, 1, 2], [4, 4, 4, 3], [None, None, None, 4]]
print list(add_column(table, list2))
#[[1, 2, 0, 1], [3, 4, 1, 2], [4, 4, 4, None]]

关于python - 如何将列表作为二维列表中的列插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com