Skip to main content
 首页 » 编程设计

带范围的 Python 列表

2025年05月04日15qlqwjy

假设我有一个年龄列表(代表一个国家的预期生命周期):

ages= ['70.37668898', '72.15779044', '73.25278702', '72.18979793', '80.73137673','55.43124818' '54.16265064', '54.16540964', ...] 

现在我的预期生命周期范围增加了两倍(范围 48-100),如下所示:

48-50,50-52, ...., 98-100 

我想创建一个新列表,其中包含各个年龄段的列表。 如果给定年龄在预期生命周期范围内,则内部列表包含 1,否则包含 0。

所以结果看起来像这样:

每个内部列表都属于 ages 中的一个 age

[[0,0,0,0,1, ..., 0],[0,1,0,0,0, ..., 0],...]  

我怎样才能做到这一点?

请您参考如下方法:

您的范围结构有点模糊。让我们假设你的范围是这样的

ranges = [(48,50),(50,52),...(98,100)] 

现在

ages= ['70.37668898', '72.15779044', '73.25278702', '72.18979793', '80.73137673','55.43124818' '54.16265064', '54.16540964', ...] 
 
result = [ [ 1 if (r[0] <= age <= r[1]) else 0 for r in ranges] for age in ages] 

或者,如果您的范围是固定的,从 50 到 100,递增 2,您可以使用生成器:

result = [ [ 1 if (r[0] <= age <= r[1]) else 0 for r in ( (i-2,i) for i in range(50,100,2)) ] for age in ages]