有没有比这更好的从字符串中排除字符串的方法了?抱歉,我是编程新手。 例如,我想通过搜索字符串列表来查找bettext [1]。
bettext[0] = '1. HL Over + / Under'
bettext[1] = 'Over + / Under'
bettext[2] = 'H2 Over + / Under'
excl_str_1 = "1. HL Over + / Under"
excl_str_2 = "2. HL Over + / Under"
excl_str_3 = "corners"
excl_str_4 = "yellow cards"
excl_str_5 = "1st"
excl_str_6 = "H2"
if not (excl_str_1) in bettext:
if not (excl_str_2) in bettext:
if not (excl_str_3) in bettext:
if not (excl_str_4) in bettext:
if not (excl_str_5) in bettext:
if not (excl_str_6) in bettext:
if (search_str) in bettext:
print(bettext)
很抱歉,如果它已经被回答了,我尝试了两个不同但相似的stackoverflow答案,并试图将它们应用于此代码,但没有用
答案 0 :(得分:1)
是的!
对于初学者,将所有排除的字符串放在列表中,因为您将对它们执行相同的操作。然后使用all
来确保此列表中的每一项都是正确的:
excl_strings = ["1. HL Over + / Under", "2. HL Over + / Under", "corners", "yellow cards", "1st", "H2"
if all(excl_string not in bettext for excl_string in excl_strings):
if search_str in bettext:
print(bettext)
答案 1 :(得分:1)
首先,对字符串使用容器,而不是n个变量。我建议使用一个集合,因为FROM python:3
# Copy of large number of commands
检查将在恒定时间内运行。
in
(该集合包含string_check = {"1. HL Over + / Under", "2. HL Over + / Under", "corners", ...}
,excl_str_1
,...,excl_str_2
。)
接下来,使用内置的search_str
:
any
这大致相当于:
if not any(s in string_check for s in bettext):
# do something
for s in bettext:
if s in string_check:
break
else:
# do something
看起来很奇怪。将其解析为for/else
。
答案 2 :(得分:1)
有一些实用程序可以缩短您的代码,特别是您可以使用字符串列表来排除和all
或any
,并且您的情况为generator expression:
kubectl create clusterrolebinding client-admin \
--clusterrole=cluster-admin \
--user=client