假设我有一个有年龄的列表(代表一个国家的预期寿命):
ages= ['70.37668898', '72.15779044', '73.25278702', '72.18979793', '80.73137673','55.43124818' '54.16265064', '54.16540964', ...]
Run Code Online (Sandbox Code Playgroud)
现在我的预期寿命范围增加了两倍(范围48-100),如下所示:
48-50,50-52, ...., 98-100
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列表,其中列出了每个年龄段的年龄段.如果给定年龄在预期寿命范围内,则内部列表包含1,如果不是,则包含0.
所以结果看起来像这样:
每个内部列表属于年龄的年龄
[[0,0,0,0,1, ..., 0],[0,1,0,0,0, ..., 0],...]
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?
你的范围结构有点模糊.让我们假设您的范围是这样的
ranges = [(48,50),(50,52),...(98,100)]
Run Code Online (Sandbox Code Playgroud)
现在
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]
Run Code Online (Sandbox Code Playgroud)
或者,如果您的范围是固定的,从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]
Run Code Online (Sandbox Code Playgroud)