删除列表中所有字母的元素?

时间:2017-11-25 16:07:51

标签: python

所以我有:

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。我是一个蟒蛇新手所以请尽量让我理解答案。

1 个答案:

答案 0 :(得分:2)

你只展示了一点工作,所以我只是给出提示。处理这些提示,如果您无法完成,请告诉我们您的尝试,我们可以帮助您。

鉴于您的起始代码,您显然不关心三元组的顺序,并且您希望三元组中三个项目的所有排列。最好是生成你想要的东西,而不是生成更多并删除你不想要的东西。以下是itertools对此的使用方法。

对于每个三元组,首先选择字母表中2个字母的组合。然后选择一位数。鉴于这些选择,将这三个项目置于所有订单中。

您可以使用itertoolscombinationsproduct和列表理解,使用permutations执行上述每一步。您可以通过嵌套这些函数在一个语句中执行此操作,或者将其展开以便于阅读。我的首选答案有两行,第一行使用生成器理解来创建在第二行中使用的生成器。您还应该创建两个常量,一个用于保存字母,另一个用于保存数字。

我怀疑你真的想要打印出整个结果列表,里面有19,500个字符串。