查找字符串列表中是否至少有一个字符串没有字符 (python)

Find if at least one string of a list of strings hasn't a character (python)

我想检查在一个字符串列表的元素中,是否至少有一个元素没有“-”。我试过了:

print not any("-" in elem for elem in my_list)

有:

my_list = ['gta', '---', '---', 'gta']

它应该 return True 和 :

my_list = ['gt-', 'ac-', 'ca-', 'gt-']

应该returnFalse。现在总是 False ,是否有单行命令可以做到这一点?我可以选择简单的方法,将我的代码写成几行,但我想练习这些命令:)。

如评论中所述,由于 not any 变为 all not,您需要使用 not all

您可以使用re.findall来检查列表中的整个字符串是否由"-":

组成
import re
def check_string(s):
   return any(re.findall('^-+$', i) for i in s)

lists = [[['gta', '---', '---', 'gta'], True], [['gt-', 'ac-', 'ca-', 'gt-'], False]]
for a, b in lists:
   assert check_string(a) == b