在[0]和[2]元组列表中搜索另一个元组列表

2024-06-11 17:26:43 发布

您现在位置:Python中文网/ 问答频道 /正文

x =  [(u'red', 3.5, u'rouge'), (u'green', 2.6, u'vert'), (u'blue', 1.45, u'blu')]

y = [('bue', 14.5), ('red', 140.0), ('green', 130.0), ('', 0.0)]

我想在x中搜索y[0],如果找到了,将x[0]更改为y[0]。在

我得到了TypeError:当我尝试遍历元组时,列表索引必须是整数,而不是元组。在

对不起,我的解释我会再试一次。在

^{2}$

{cd1>要以列表结尾

我已经尝试了很多东西,但是我对python还是新手,并且尝试了以下几点

for tup  in x:
      results = [(tup[2]) for tup in x]

for tup in x:
    if tup[0] == y[tup[0]]:
        y[tup[0]] = tup[2]

Tags: in列表for整数greenbluered元组
1条回答
网友
1楼 · 发布于 2024-06-11 17:26:43

这是对您的问题的字面解释,如果y[0][0]是{}在x中的任何一个元组中,那么将这个元组交换成{},我假设它包含blue不是{},所以{}变成{}:

x = [(u'red', 3.5, u'rouge'), (u'green', 2.6, u'vert'), (u'blue', 1.45, u'blu')]

y = [('blue', 14.5), ('red', 140.0), ('green', 130.0), ('', 0.0)]

for ind, tup in enumerate(x):
    if y[0][0] in tup:
        x[ind] = y[0]
print(x)
[(u'red', 3.5, u'rouge'), (u'green', 2.6, u'vert'), ('blue', 14.5)]

或者使用列表理解并创建新列表:

^{pr2}$

要只交换元素:

x = [('a', 'b','c'),('d','e','f'),('g','h','i')]
y = [('zzz',10), ('xxx',20), ('yyy',30)]


for ind,ele in enumerate(x):
    y[ind] = (ele[-1],y[ind][1])
print(y)
[('c', 10), ('f', 20), ('i', 30)]

相关问题 更多 >