python 列表理解字母生成
python list comprehension alphabet generation
我正在尝试使用列表理解。
我的代码预期目标是
附带值,
['aaaa','bb','cccc','ddddddd','eee','f','ggggg']
并且它不应根据列表中的元素数量显示超出 'g'
的值。
如果我在另一个列表中有 8 个元素 b
那么它也应该显示 '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)]
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']
只是 zip()
function 你的列表 b
和 string.ascii_lowercase
字符串:
[char * count for char, count in zip(string.ascii_lowercase, b)]
zip()
对输入序列的元素进行配对; string.ascii_lowercase
的第一个字符与 b
中的第一个数字,第二个字符与 b
中的第二个数字,等等,直到一个或另一个具有 运行 个元素。
演示:
>>> import string
>>> b = [4, 2, 4, 7, 3, 1, 5]
>>> [char * count for char, count in zip(string.ascii_lowercase, b)]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg']
>>> [char * count for char, count in zip(string.ascii_lowercase, b + [3])]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg', 'hhh']
>>> [char * count for char, count in zip(string.ascii_lowercase, b + [3, 7])]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg', 'hhh', 'iiiiiii']
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']
我正在尝试使用列表理解。
我的代码预期目标是 附带值,
['aaaa','bb','cccc','ddddddd','eee','f','ggggg']
并且它不应根据列表中的元素数量显示超出 'g'
的值。
如果我在另一个列表中有 8 个元素 b
那么它也应该显示 '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)]
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']
只是 zip()
function 你的列表 b
和 string.ascii_lowercase
字符串:
[char * count for char, count in zip(string.ascii_lowercase, b)]
zip()
对输入序列的元素进行配对; string.ascii_lowercase
的第一个字符与 b
中的第一个数字,第二个字符与 b
中的第二个数字,等等,直到一个或另一个具有 运行 个元素。
演示:
>>> import string
>>> b = [4, 2, 4, 7, 3, 1, 5]
>>> [char * count for char, count in zip(string.ascii_lowercase, b)]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg']
>>> [char * count for char, count in zip(string.ascii_lowercase, b + [3])]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg', 'hhh']
>>> [char * count for char, count in zip(string.ascii_lowercase, b + [3, 7])]
['aaaa', 'bb', 'cccc', 'ddddddd', 'eee', 'f', 'ggggg', 'hhh', 'iiiiiii']
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']