如何基于数组的另一部分替换数组的一部分?

时间:2019-03-07 13:05:05

标签: python regex list

我的问题是,仅当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']] 

2 个答案:

答案 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']]