我有一个像这样的元组列表:
list = [(1,’q’),(2,’w’),(3,’e’),(4,’r’)]
我试图创建一个更新功能更新(项目,数字),搜索列表中的项目,然后更改数字.
例如,如果我使用更新(w,6),结果将是
list = [(1,'q'),(6,'w'),'e'),'r')]
我试过这段代码,但我有错误
if item in heap:
heap.remove(item)
Pushheap(item,num)
else:
Pushheap(item,num)
Pushheap是一个将元组推入堆中的函数
有任何想法吗?
您可以直接扫描列表中查找带有所需字母的元组并替换整个元组(您无法
修改元组),在找到所需项目后突破循环.例如,
lst = [(1,'r')]
def update(item,num):
for i,t in enumerate(lst):
if t[1] == item:
lst[i] = num,item
break
update('w',6)
print(lst)
产量
[(1,'r')]
但是,您应该认真考虑使用字典而不是元组列表.搜索字典比在列表上进行线性扫描要有效得多.