所以我有:
letters = list(''.join(i) for i in permutations('A''B''C''D''E''F''G''H''J''K''M''N''P''Q''R''T''V''W''X''Y''Z''1''2''3''4''5''6''7''8''9''0', 3))
print(letters)
并打印一些所有字母或所有数字,或两个数字和一个字母的组合。我只想要两个字母和一个数字的组合。有没有办法删除所有列表元素不只包含两个字母和一个数字?
P.S。我是一个蟒蛇新手所以请尽量让我理解答案。
答案 0 :(得分:2)
你只展示了一点工作,所以我只是给出提示。处理这些提示,如果您无法完成,请告诉我们您的尝试,我们可以帮助您。
鉴于您的起始代码,您显然不关心三元组的顺序,并且您希望三元组中三个项目的所有排列。最好是生成你想要的东西,而不是生成更多并删除你不想要的东西。以下是itertools
对此的使用方法。
对于每个三元组,首先选择字母表中2个字母的组合。然后选择一位数。鉴于这些选择,将这三个项目置于所有订单中。
您可以使用itertools
,combinations
,product
和列表理解,使用permutations
执行上述每一步。您可以通过嵌套这些函数在一个语句中执行此操作,或者将其展开以便于阅读。我的首选答案有两行,第一行使用生成器理解来创建在第二行中使用的生成器。您还应该创建两个常量,一个用于保存字母,另一个用于保存数字。
我怀疑你真的想要打印出整个结果列表,里面有19,500个字符串。