Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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_Python 3.x_List_Numpy_Tuples - Fatal编程技术网

Python 将列表元素与元组元素合并

Python 将列表元素与元组元素合并,python,python-3.x,list,numpy,tuples,Python,Python 3.x,List,Numpy,Tuples,我有一个列表和两个元组,如下所示: L1 = ['0.99999', '0.88888', '0.77777','0.66666','0.55555'] T1 = [('id_099', 'PND', '15.42'), ('id_088', 'PKZ', '16.04'), ('id_077', 'PZD', '16.73'), ('id_066', 'PNK', '18.19'), ('id_055', 'PNT', '10.62')] T2 = [('XX13', 'XY13'

我有一个列表和两个元组,如下所示:

L1 = ['0.99999', '0.88888', '0.77777','0.66666','0.55555']

T1 = [('id_099', 'PND', '15.42'),
 ('id_088', 'PKZ', '16.04'),
 ('id_077', 'PZD', '16.73'),
 ('id_066', 'PNK', '18.19'),
 ('id_055', 'PNT', '10.62')]

T2 = [('XX13', 'XY13'),
 ('XX43', 'XY26'),
 ('XX77', 'XY13'),
 ('XX19', 'XY03'),
 ('XX93', 'XY13')]
merged = [i+j for i,j in zip(T1,T2)]   
我希望通过以下方式将每个元素数组合并为列表或NumPy数组

NEW = 
('id_099', 'PND', '15.42','0.99999','XX13', 'XY13'),
('id_088', 'PKZ','16.04','0.88888','XX77', 'XY13'),
.
.
.
当只有元组时,很容易按如下方式合并它们:

L1 = ['0.99999', '0.88888', '0.77777','0.66666','0.55555']

T1 = [('id_099', 'PND', '15.42'),
 ('id_088', 'PKZ', '16.04'),
 ('id_077', 'PZD', '16.73'),
 ('id_066', 'PNK', '18.19'),
 ('id_055', 'PNT', '10.62')]

T2 = [('XX13', 'XY13'),
 ('XX43', 'XY26'),
 ('XX77', 'XY13'),
 ('XX19', 'XY03'),
 ('XX93', 'XY13')]
merged = [i+j for i,j in zip(T1,T2)]   
但是,我找不到一种简单的方法将列表中的每个元素与元组合并,当我尝试将上述方法应用于列表时,它会抛出一个错误

TypeError:只能将元组(而不是“str”)连接到元组

你能给我指出正确的方向吗?

使用现代(3.5+)Python,这并不难:

merged = [(*i, x, *j) for i, x, j in zip(T1, L1, T2)]   

元组
s使用
*
解包,而单个元素通常包含在
元组
文本中,无需在
元组
中显式包装
L1
中的元素,也不执行多个连接以生成中间临时的
元组。

能否提供一个给出错误的列表示例?
T1
T2
中的值通过像你一样压缩[i+(j,)+k表示zip(T1,L1,T2)中的i,j,k]`-显式地将中间元素转换为元组来正确合并。哇,回答不错。在这里,我在玩弄
np.concatentate
。这样更好,我甚至不打算发布我的想法。我不知道这是一件事。
I+(x,)+j
的时间差不多。谢谢。是的,这就是我一直在寻找的答案。@hpaulj:它也会随着实现的不同而变化;较旧的设计(=3.9)使用的每项指令与listcomps使用的指令类似(
LIST\u APPEND
用于单个项目,
LIST\u EXTEND
用于未打包的iterables,以及在制作
元组时从
LIST
转换为
元组的最终指令)。它不一定在所有情况下都更具性能,但它的扩展性更好(你投入的东西越多,避免的开销越大),而且更简单。