我的问题是,仅当200小于t时,如何扫描“ my_list”中的“ comp”并将关联的时间值从200更改为“ t”?
t = 3000
comp = 'C1'
my_list = [[200, 'C1'],[4000, 'C2']]
输出:
my_list = [[3000, 'C1'],[4000, 'C2']]
在这种情况下可以做相反的事情,因为“ t”小于“ 5000”时,列表不应更改:
t = 3000
comp = 'C1'
my_list = [[5000, 'C1'],[4000, 'C2']]
答案 0 :(得分:1)
尝试一下:
my_list = [[t,k[1]] if( k[1]==comp and k[0]<t ) else k for k in my_list]
答案 1 :(得分:0)
使用deepcopy
:
t = 3000
comp = 'C1'
my_list = [[200, 'C1'],[4000, 'C2']]
for e in my_list[:]:
if comp in e:
if e[0] < t:
e[0] = t
print(my_list)
最终,单线:
print([[t,e[1]] if e[1] == comp and e[0]<t else e for e in my_list])
输出:
[[3000, 'C1'], [4000, 'C2']]