Python将一个包含值的列添加到元组列表中



我在python中有一个元组列表,如下所示:

[('1','服务器'(,('2','计算机'(]

我想添加一个带有invoicenr的列,所以它看起来像这样:[('44','1','服务器'(,('44],'2','计算机'(]

您可以执行以下操作:

data=[('1', 'Server'), ('2', 'Computer')]
res=[('44',) + x for x in data]

res:的输出

[('44', '1', 'Server'), ('44', '2', 'Computer')]

使用列表理解:

old = [('1', 'Server'), ('2', 'Computer')]
invoicenr = ['44', '44']
new = [(a, *b) for a, b in zip(invoicenr, old)]

输出:

[('44', '1', 'Server'), ('44', '2', 'Computer')]

元组根据定义是不可变的,因此不可能直接添加到原始元组中。然而,要实现您描述的结果,您必须通过以下步骤:

1-循环浏览原始列表,您将得到一个结果,该结果将是一个元组。

2-将元组转换为列表

3-添加字段(通过附加,或任何其他你想要的方法(

4-将列表转换为元组

5-将新元组重新添加到新对象中。

代码可能看起来像这样:

newBigList = []
For singleTuple in myListTuple:
newList = list(singleTuple)
newList.append("someValue")
newTuple = tuple(newList)
newBigList.append(newTuple)

创建一个带有预先准备好的发票编号的新列表:

new_list = [(invoicenr,) + item for item in old_list]

注意逗号;需要将表达式的这一部分标记为元组,而不仅仅是用于操作顺序的括号。

看起来我可能已经被击败了,但这里有一个方法。

x1 = [('1', 'Server'), ('2', 'Computer')]
x2 = ('44',)
[x2 + x for x in x1]

通过添加列使x2成为元组,然后使用列表理解

您可以使用列表理解来创建一个新的元组列表:

A = [('1', 'Server'), ('2', 'Computer')]
B = ['44','44']
C= [tuple([b] + list(a)) for b,a in zip(B, A)]
print(C)

[('44','1','服务器'(,('44],'2','计算机'(]

最新更新