Python 如何根据列表长度创建字符列表?

Python 如何根据列表长度创建字符列表?,python,string,list,Python,String,List,我有一份清单: list = [4,2,3] 我试图将它们创建为字符列表的计数器,如,因此我最终得出以下结论: list = [[A, A, A, A][B, B][C, C, C]] 我将如何在Python中实现这一点 谢谢,play.py的内容 import string def make_lists(a): characters = string.uppercase # Relace this with your custom char set if necessary

我有一份清单:

list = [4,2,3]
我试图将它们创建为字符列表的计数器,如,因此我最终得出以下结论:

list = [[A, A, A, A][B, B][C, C, C]]
我将如何在Python中实现这一点

谢谢,play.py的内容

import string
def make_lists(a):
    characters = string.uppercase  # Relace this with your custom char set if necessary
    my_list = [[c] * n for n, c in zip(a, characters)]
    return my_list
输出:

In [11]: a = [4, 2, 3]

In [12]: play.make_lists(a)
Out[12]: [['A', 'A', 'A', 'A'], ['B', 'B'], ['C', 'C', 'C']]

顺便说一句,不要调用变量
list
,它是一个内置函数的名称。

通过列表理解:

lst = [4,2,3]
chars = ['A', 'B', 'C']
[[chars[j] for _ in range(lst[j])] for j in range(len(lst))]
正如其他答案所建议的,如果您只需要字母顺序的字母,您可以使用
string
模块

import string
[[string.uppercase[j] for _ in range(lst[j])] for j in range(len(lst))]
另一个解决方案是:

s = [4,2,3]
>>> [ [chr(y)]*x for x,y in zip(s, range(ord('A'), ord('A') + len(s))) ]
[['A', 'A', 'A', 'A'], ['B', 'B'], ['C', 'C', 'C']]
>>>

选民们,总是有一个习惯来解释为什么你投了反对票。让我们礼貌地解释一下@LearningNeverStops如果你将鼠标悬停在downvote按钮上,你会看到:“这个问题没有显示任何研究成果;它不清楚或没有用处。”。我不认为每次你投否决票的时候抄袭都是有成效的。新用户可能应该花点时间来理解下行投票的含义…@sashkello-aah-true,我忘了那个选项:)。
s = [4,2,3]
>>> [ [chr(y)]*x for x,y in zip(s, range(ord('A'), ord('A') + len(s))) ]
[['A', 'A', 'A', 'A'], ['B', 'B'], ['C', 'C', 'C']]
>>>