Python 将列表中的元组替换为它';第一次进入

Python 将列表中的元组替换为它';第一次进入,python,list,replace,tuples,equals,Python,List,Replace,Tuples,Equals,我正在使用python 3 我有一个不同元组的列表。每个元组的第一个值总是相同的,但其余值会有所不同。如何在包含第一个值的元组之后搜索列表,然后将整个元组替换为列表中的新元组? 前任: 这是我的元组:(122,23,24,9) 此元组位于列表中,第一个值始终相同,但其余值不同 如何在列表中找到第一个值等于我的元组“122”的元组,并将其替换为我的整个元组 (125, 34, 35, 21) (122, 341, 5, 27) (124, 31, 51, 7) 假设列表是l,元组是t,并且始

我正在使用python 3

我有一个不同元组的列表。每个元组的第一个值总是相同的,但其余值会有所不同。如何在包含第一个值的元组之后搜索列表,然后将整个元组替换为列表中的新元组? 前任: 这是我的元组:
(122,23,24,9)

此元组位于列表中,第一个值始终相同,但其余值不同 如何在列表中找到第一个值等于我的元组“122”的元组,并将其替换为我的整个元组

(125, 34, 35, 21)

(122, 341, 5, 27)

(124, 31, 51, 7)

假设列表是
l
,元组是
t
,并且始终只有一个元组要替换:

l[l.index([_ for _ in l if _[0] == t[0]][0])] = t
我承认不漂亮

如果列表中有多个元组具有匹配的第一个值,则仅替换第一个元组

a = [(125, 34, 35, 21), (122, 341, 5, 27), (124, 31, 51, 7)]
t = (122, 23, 24, 9)
for i, v in enumerate(a):
    if v[0] == t[0]:
        a[i] = t
        break
但是,对于更改正在迭代的列表的值有不同的含义,但是因为您在我认为没有问题之后立即中断了!请注意,中断意味着您只在列表中查找一个可能的元组,而且如果您的列表包含数百万个条目,则如果您的值位于列表的早期,则不会循环遍历所有值,以获得更好的性能

编辑:


添加了替换元组
t

您可以使用
索引方法或通过在列表上循环来搜索列表中的元素。例如,对于
索引
方法:

mylist = [(125, 34, 35, 21),
          (122, 341, 5, 27),
          (124, 31, 51, 7)]

idx = mylist.index((122, 341, 5, 27))
# idx should be '1'
问题是,它只在完全找到整个元组时才找到条目。所以这对你来说可能不是最好的解决方案

对于循环,这可能如下所示:

for idx, itm in enumerate(mylist):
    if itm[0] == 122:
        mylist[idx] = (1,2,3,4,5) # your new tuple
我正在使用
enumerate
为列表中的每个元素添加索引

l = [(125, 34, 35, 21), (122, 341, 5, 27), (124, 31, 51, 7)]
t = (122, 23, 24, 9)

out = [t if e[0] == t[0] else e for e in l]
print(out)
这将打印出:

[(125, 34, 35, 21), (122, 23, 24, 9), (124, 31, 51, 7)]

你的问题不清楚。你能给出你想要处理的输入和输出的例子吗?正如我所说的,我得到了一个包含一些元组的列表,我需要用一个新元组替换列表中的一个元组,我需要替换的元组是第一个值等于我想用它替换的元组的元组。(元组中的第一个值是tup[0])+1漂亮多了,我忘记了列表理解中的
else