给定一个项目,如何计算该项目在列表中的出现次数,如果该项目未达到某些规定,如何不打印该项目?

2024-09-30 05:18:03 发布

您现在位置:Python中文网/ 问答频道 /正文

假设你有一个列表,你希望列表中的每一项都有两个“a”,不管大小写,和两个“g”,也不管大小写。如何阻止python打印“aaGa”、“aGGG”等,但打印所有其他有两个“a”和“g”的项目?你知道吗

更新: 以下是当前正在打印的内容的示例:

['aAaA', 'aAaG', 'aAAG', 'aAGG', 'aAaA', 'aAag', 'aAAG', 'aAGg', 'aAaa', 'aAaG', 'aAaG', 'aAGG', 'aAaa', 'aAag', 'aAaG', 'aAGg', 'aAaA', 'aAaG', 'aAAG', 'aAGG', 'aAaA', 'aAag', 'aAAG', 'aAGg', 'aAaa', 'aAaG', 'aAaG', 'aAGG', 'aAaa', 'aAag', 'aAaG', 'aAGg', 'aAaA', 'aAaG', 'aAAG', 'aAGG', 'aAaA', 'aAag', 'aAAG', 'aAGg', 'aAaa', 'aAaG', 'aAaG', 'aAGG', 'aAaa', 'aAag', 'aAaG', 'aAGg', 'aAaA']

下面是一个例子,它应该是什么样子的:

['aaGG', 'Aagg', 'AAGG', 'AaGG', 'aaGg', 'AAGg', 'AAgg', etc.]

Tags: 项目示例内容列表例子样子aaaaaggg
3条回答
print [i for i in test_list if re.findall(r"^(?=.*a.*a)(?=.*g.*g).*$",i)]

您可以在这里使用re模块

word_list = ["AAgg", "aGGG", "AgaG", "gAaA"]
for idx in word_list:
    if idx.lower().count("a") == idx.lower().count("g") == 2:
        print idx

编辑

如果你想把你的结果作为一个列表放回去,就像在你的编辑一样,只需要把它放在一行

print [idx for idx in word_list if idx.lower().count("a") == idx.lower().count("g") == 2]

我会用正则表达式。这将打印列表中至少有2g和2a的所有项目

[i for i in lst if re.search(r'(?i)^(?=.*?a.*?a)(?=.*?g.*?g)', i)]

示例:

>>> lst = ["aaGa", "aGGG", 'aagg', 'gagar', 'Gttgata', 'GGGa', 'Agaa']
>>> [i for i in lst if re.search(r'(?i)^(?=.*?a.*?a)(?=.*?g.*?g)', i)]
['aagg', 'gagar', 'Gttgata']

相关问题 更多 >

    热门问题