python怎么替换列表中的值_如何有条件地替换python中列表列表中的值

我是一个Python新bie.

我有两个这样的列表列表:

A = List[List[float,float]]

B = List[List[float,float]]

两种不同的尺寸

例如:

A has [time, value]

B has [start_time, end_time]

A = [[0.0,10.0] , [1.0,10.0], [2.0,10.0], [3.0,10.0], [4.0,10.0], [5.0,10.0], [6.0,10.0]]

B = [[0.0,2.0], [5.0,6.0]]

我想要做的是:

如果A的时间不在B中,我应该将A中相应的“值”设为零.

所以输出将是:

[[0.0,10.0] , [1.0,10.0], [2.0,10.0], [3.0,0.0], [4.0,0.0], [5.0,10.0], [6.0,10.0]]

即,如果B中的时间段在A中没有相应的时间值,则对应于该时间的值应为零.在这种情况下,B中存在2到5之间的值,因此A中的’3’和’4’的伙伴值被设为零.

所以我得到的一个想法是将B转换为单个列表,然后比较AA和A的值.但是我没有取得多大进展.

AA = numpy.hstack(B) # for getting array of times

for i in 1: len(AA):

if (AA[i]==A[

解决方法:

对于简单的问题,嵌套循环设计通常可以让您快速解决,而无需担心列表展平函数的细节.

for i in range(len(A)):

time = A[i][0]

isValidTime = False

for time_segment in B:

if time_segment[0] <= time <= time_segment[1]:

isValidTime = True

break

if not isValidTime:

A[i][1] = 0.0

编辑:只是要清楚,包括’break’语句没有必要去解决方案,但它有助于避免不必要的计算.如果我们确定A中的项目确实有一个有效时间,我们可以安全地停止搜索B中的时间段并继续前进到A的下一个项目.

标签:python,algorithm,list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值