遍历动态列表

时间:2019-12-05 09:31:24

标签: python loops dynamic

我想编写一段代码来制作看起来像这样的列表

result = [['a','a','a','a'],
          ['a','a','a','b'],
          ....

以此类推。

到目前为止,我还是尝试用三个列表来做到这一点。

lst = ['a' for x in range(num)]
item_lst = [[None,None] for x in range(num)]
char_lst = string.printable

我目前的计划是使item_lst成为lst的索引,其中,item_lst [0]是lst中的位置,而item_lst [1]是char_lst中的位置。

在代码的后面,将有一个for循环,根据item_lst的指令将lst中的字符替换为char_lst中的字符。

我想知道你

A)知道一种循环完成我的思想的方法

B)有更好的方法

最后,目标是创建一个列表,列出每个可打印字符,并在给定长度下以每种可能的配置进行打印。

1 个答案:

答案 0 :(得分:1)

解决方案非常简单:

import itertools
import string

num = 4
result = list(itertools.product(*([string.printable] * num)))

但是,该列表会很长 ,因此这可能不是您想要的。具体来说,您将拥有一个包含100000000个元素的列表(包含100个可打印元素和num=4)。您应该使用生成器,而不是列表:

for lst in itertools.product(*([string.printable] * num)):
    # do something with lst