Python:将大小可变的元组列表转换为固定形状的数组结构

2 投票
2 回答
1764 浏览
提问于 2025-04-17 20:25

我有一个包含元组的列表,像这样:

a = [(1,2,3), (4,5)]   // np.shape = (2,)

我想把它转换成一个像数组的结构,但这个数组的形状是固定的,也就是说:

a = [(1,2,3), (4,5,0)] // np.shape = (2,3)

2 个回答

3

用函数式的方法来做这个事情可以这样:

a = [(1,2,3), (4,5), (6, 7, 8, 9)]
from itertools import izip_longest
print zip(*izip_longest(*a, fillvalue = 0))
# [(1, 2, 3, 0), (4, 5, 0, 0), (6, 7, 8, 9)]
3
In [69]: maxlen=max(len(i) for i in a) #get the max length of all tuples

In [70]: [i+(0,)*(maxlen-len(i)) for i in a] #fill each tuple with extra zeros
Out[70]: [(1, 2, 3), (4, 5, 0)]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答