查找字符串列表中是否至少有一个字符串没有字符 (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
我想检查在一个字符串列表的元素中,是否至少有一个元素没有“-”。我试过了:
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