python列表理解字母表生成

时间:2015-09-18 21:20:35

标签: python list-comprehension

我正在尝试使用列表理解。

我的代码目标是 带来价值观,

['aaaa','bb','cccc','ddddddd','eee','f','ggggg']

并且根据列表中的元素数量,它不应显示超出'g'的值。

如果我在另一个列表b中有8个元素,那么它也应显示'h'

我可以通过两个for循环的列表理解来实现这一点吗?

import string
b = [4, 2, 4, 7, 3, 1, 5]
d = [ s*i for i in range(len(b)) for s in list(string.ascii_lowercase) ]

我试图使用此代码,但徒劳无功

[chr(i) for i in range(ord('a'), ord('z') + 1)]

2 个答案:

答案 0 :(得分:3)

import string
s=list(string.ascii_lowercase)
b = [4, 2, 4, 7, 3, 1, 5]
[s[i]*x for i,x in enumerate(b)]
>>>['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg']

答案 1 :(得分:2)

b = [4, 2, 4, 7, 3, 1, 5]

print b

out = [b[i]*chr(ord('a')+i) for i in range(len(b))]
print out

这给出了:

[4, 2, 4, 7, 3, 1, 5]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg']