这是一个生成器表达式:
(item for i in range(skills[index])
如果你想要一个列表列表,你需要使用
[]
在理解力之内。
考虑到所需的输出,使用
zip
这两个列表并避免
range
.然后嵌套理解以使其平坦:
colors = ["#F1A141", "#52D987", "#12A3FF", "#FF3F94", "#564DA6"]
skills = [3, 4, 4, 2, 3]
[c for color, n in zip(colors, skills) for c in [color] * n]
生产:
['#F1A141',
'#F1A141',
'#F1A141',
'#52D987',
'#52D987',
'#52D987',
'#52D987',
'#12A3FF',
'#12A3FF',
'#12A3FF',
'#12A3FF',
'#FF3F94',
'#FF3F94',
'#564DA6',
'#564DA6',
'#564DA6']