python: return 如果列表中没有以 'p=' 开头的元素则为假
python: return False if there is not an element in a list starting with 'p='
有一个像
这样的列表
lst = ['hello', 'stack', 'overflow', 'friends']
我该怎么做:
if there is not an element in lst starting with 'p=' return False else return True
?
我在想:
for i in lst:
if i.startswith('p=')
return True
但我无法在循环中添加 return False,否则它会在第一个元素处消失。
好吧,让我们分两部分来做:
首先,您可以创建一个新列表,其中每个元素都是一个仅包含每个原始项目的前 3 个字符的字符串。您可以使用 map()
这样做:
newlist = list(map(lambda x: x[:2], lst))
然后,您只需要检查 "p="
是否是这些元素之一。那将是:
"p=" 在新列表中
将以上两者组合在一个函数中,使用一条语句应该如下所示:
def any_elem_starts_with_p_equals(lst):
return 'p=' in list(map(lambda x: x[:2], lst))
这将测试 lst
的每个元素是否满足您的条件,然后计算这些结果的 or
:
any(x.startswith("p=") for x in lst)
试试这个
if len([e for e in lst if e.startwith("p=")])==0: return False
使用any
条件检查列表中具有相同条件的所有元素:
lst = ['hello','p=15' ,'stack', 'overflow', 'friends']
return any(l.startswith("p=") for l in lst)
我建议使用迭代器,例如
output = next((True for x in lst if x.startswith('p=')),False)
这将为 first lst
以 'p='
开头的元素输出 True
然后停止搜索。如果走到尽头还没有找到'p='
,则returnsFalse
.
您可以使用内置方法 any to check it any element in the list starts with p=
. Use string's startswith 方法来检查字符串的开头
>>> lst = ['hello', 'stack', 'overflow', 'friends']
>>> any(map(lambda x: x.startswith('p='),lst))
>>> False
一个应该导致 True
的例子
>>> lst = ['hello', 'p=stack', 'overflow', 'friends']
>>> any(map(lambda x: x.startswith('p='),lst))
>>> True
有一个像
这样的列表lst = ['hello', 'stack', 'overflow', 'friends']
我该怎么做:
if there is not an element in lst starting with 'p=' return False else return True
?
我在想:
for i in lst:
if i.startswith('p=')
return True
但我无法在循环中添加 return False,否则它会在第一个元素处消失。
好吧,让我们分两部分来做:
首先,您可以创建一个新列表,其中每个元素都是一个仅包含每个原始项目的前 3 个字符的字符串。您可以使用 map()
这样做:
newlist = list(map(lambda x: x[:2], lst))
然后,您只需要检查 "p="
是否是这些元素之一。那将是:
"p=" 在新列表中
将以上两者组合在一个函数中,使用一条语句应该如下所示:
def any_elem_starts_with_p_equals(lst):
return 'p=' in list(map(lambda x: x[:2], lst))
这将测试 lst
的每个元素是否满足您的条件,然后计算这些结果的 or
:
any(x.startswith("p=") for x in lst)
试试这个
if len([e for e in lst if e.startwith("p=")])==0: return False
使用any
条件检查列表中具有相同条件的所有元素:
lst = ['hello','p=15' ,'stack', 'overflow', 'friends']
return any(l.startswith("p=") for l in lst)
我建议使用迭代器,例如
output = next((True for x in lst if x.startswith('p=')),False)
这将为 first lst
以 'p='
开头的元素输出 True
然后停止搜索。如果走到尽头还没有找到'p='
,则returnsFalse
.
您可以使用内置方法 any to check it any element in the list starts with p=
. Use string's startswith 方法来检查字符串的开头
>>> lst = ['hello', 'stack', 'overflow', 'friends']
>>> any(map(lambda x: x.startswith('p='),lst))
>>> False
一个应该导致 True
>>> lst = ['hello', 'p=stack', 'overflow', 'friends']
>>> any(map(lambda x: x.startswith('p='),lst))
>>> True