python 列表理解字母生成

标签 python list-comprehension

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

代码的预期目标是 带着值(value)观而来,

['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)]

最佳答案

只是 zip() function将您的列表 bstring.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']

关于python 列表理解字母生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661208/

相关文章:

python - Vtk - 鼠标位置的世界坐标

Python:列表理解以生成连续的偶数子列表

Python 用条件将两个列表相交

Python。将 2 个列表转换为一个字典对象

python - SqlAlchemy 使用带有联接的查询,如何仅从一个实体获取列而不是同时从两个实体获取列?

python - 简单客户端-服务器脚本不起作用,尝试连接时出现超时错误10060

python - 通过对象列表中的每个元素索引查找不包括零的最小值

python - Pip 无效命令 Egg_info

python - 你能解释一下这个 Python 列表理解吗?

python - 附加在列表列表中