根据变量将多个项目附加到列表中?

2024-10-05 10:20:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我找了很多答案,但我只能找到答案,只是添加一个项目多次。或者只是将两个列表相乘。你知道吗

#ratio of bar
ratio_variant1 = 0.1
ratio_variant2 = 0.3
ratio_variant3 = 0.4
ratio_variant4 = 0.2

ratio = []
ratio.extend([ratio_variant1, ratio_variant2, ratio_variant3, ratio_variant4])

#ratio to integer
ratiointeger = [x*100 for x in ratio]

#size of bar
size_variant1 = 2
size_variant2 = 3
size_variant3 = 4
size_variant4 = 6

size = []
size.extend([size_variant1, size_variant2, size_variant3, size_variant4])

bucket = size * ratiointeger

恐怕我创建比率和大小列表的方式并不是真正的python,但主要的问题是我无法使用以下内容创建列表/桶:

10 items of 2
30 items of 3
40 items of 4
20 items of 6

Tags: ofto项目答案列表sizebaritems
2条回答

试试这个:

bucket = [[s] * int(r) for (s, r) in zip(size, ratiointeger)]

在我看来,你需要:

bucket = [x for l in ([s]*r for s, r in zip(size, ratiointeger)) for x in l]

这将生成一个列表列表,其中包含所需的重复:

>>> [[s]*r for s, r in zip(size, ratiointeger)]
[[2, 2, 2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]]

然后使用the method from this post将它们展平。你知道吗

相关问题 更多 >

    热门问题