Python 确定一个列表中的元素是否小于另一个列表中的元素
我想检查是否有其他列表中的一个对应元素的特定间隔 如果列表中至少有一个元素属于该区间,我希望返回1(无论有多少个元素属于该区间),否则返回0。目标是获得一个新列表,其中包含0和1(与间隔数相同)。 我尝试获取两个列表(时间和间隔),并检查Python 确定一个列表中的元素是否小于另一个列表中的元素,python,list,comparison,Python,List,Comparison,我想检查是否有其他列表中的一个对应元素的特定间隔 如果列表中至少有一个元素属于该区间,我希望返回1(无论有多少个元素属于该区间),否则返回0。目标是获得一个新列表,其中包含0和1(与间隔数相同)。 我尝试获取两个列表(时间和间隔),并检查time中的一个(或多个)元素是否小于interval中的一个元素 以下是我尝试过的: time = [4.84, 9.82, 20.22, 25.66, 28.67, 31.28, 37.08, 43.06, 44.05, 49.24, 62.26, 69.1
time
中的一个(或多个)元素是否小于interval
中的一个元素
以下是我尝试过的:
time = [4.84, 9.82, 20.22, 25.66, 28.67, 31.28, 37.08, 43.06, 44.05, 49.24, 62.26, 69.1, 83.52]
newlist=[]
interval = []
for t in range(10, 110, 10):
interval.append(t)
for n, i in enumerate(interval):
for w, elt in enumerate(time):
if elt < i and elt > i-10:
newlist.append(1)
else:
newlist.append(0)
newlist
以下是我想要得到的:
[1, 0, 1, 1, 1, 0, 1, 0, 1, 0]
得到结果的原因是,对于每个时间间隔,您都在循环所有时间值,并为时间列表中的每个时间值追加0或1。但是,您只需要为完整的时间列表附加一个0或1 另外,在两个循环中使用
enumerate
是完全无用的,因为您不使用索引n和w
time = [4.84, 9.82, 20.22, 25.66, 28.67, 31.28, 37.08, 43.06, 44.05, 49.24, 62.26, 69.1, 83.52]
interval = []
for t in range(10, 110, 10):
interval.append(t)
new = []
for i in interval:
if any([val < i and val > i-10 for val in time]):
new.append(1)
else:
new.append(0)
列表理解只是创建列表的for循环的一个简短符号。例如,您可以将创建列表间隔的代码重写为列表理解,如下所示:
[True, True, False, False, False, False, False, False, False, False, False, False, False]
interval = [t for t in range(10, 110, 10)]
如果列表中的任何元素为
True
,则函数any()
将返回True
,否则它将返回False,因为对于每个间隔,您将循环所有时间值,并为时间列表中的每个时间值追加0或1。但是,您只需要为完整的时间列表附加一个0或1
另外,在两个循环中使用enumerate
是完全无用的,因为您不使用索引n和w
time = [4.84, 9.82, 20.22, 25.66, 28.67, 31.28, 37.08, 43.06, 44.05, 49.24, 62.26, 69.1, 83.52]
interval = []
for t in range(10, 110, 10):
interval.append(t)
new = []
for i in interval:
if any([val < i and val > i-10 for val in time]):
new.append(1)
else:
new.append(0)
列表理解只是创建列表的for循环的一个简短符号。例如,您可以将创建列表间隔的代码重写为列表理解,如下所示:
[True, True, False, False, False, False, False, False, False, False, False, False, False]
interval = [t for t in range(10, 110, 10)]
函数any()
如果列表中的任何元素为True
,则返回True
,否则返回False
问题实际上可能更清楚。问题实际上可能更清楚。