我如何设置一个if语句,以便在python中使用条件数组作为输入

我如何设置一个if语句,以便在python中使用条件数组作为输入,python,python-3.x,if-statement,Python,Python 3.x,If Statement,首先,我根据正常的IF语句检查给定的条件。如果是True,我需要扫描所有文件以查找单个关键字。如果它不是True,我需要扫描所有文件以查找一组关键字,这些关键字将已提供 对于我的简单工作示例,我没有扫描目录中的文件名,而是简单地在字符串中搜索关键字 test1 = "NotKeyWord" password = "password" password1 = "password1" password2 = "password2" password3 = "password3" if test1.

首先,我根据正常的
IF
语句检查给定的条件。如果是
True
,我需要扫描所有文件以查找单个关键字。如果它不是
True
,我需要扫描所有文件以查找一组关键字,这些关键字将已提供

对于我的简单工作示例,我没有扫描目录中的文件名,而是简单地在字符串中搜索关键字

test1 = "NotKeyWord"
password = "password"
password1 = "password1"
password2 = "password2"
password3 = "password3"

if test1.lower() == "keyword":
    condition = password
else:
    condition = [password1, password2, password3]

f = "password1_password2_password3_jibberish_E=mc2"
if condition in f:
    print("Problem solved")
如果keyword=“keyword”即为单数,则此代码有效。好的然而,我想这样做,如果是另一种情况,需要知道几个关键字才能获取正确的文件,我不需要诉诸于显式写出所有的单词

为了我的目的,我可以写作

if password1 in f and password2 in f and password3 in f:
    print("problem solved")
但是我想要一种pythonic方法,希望它足够通用,能够处理长度未知的关键字数组,因此不能硬编码。

这应该行得通

if all ( c in f for c in condition ):
    print("problem solved")
这应该行得通

if all ( c in f for c in condition ):
    print("problem solved")

使
条件
始终成为一个列表,即使它只有一项:

if test1.lower() == "keyword":
    condition = [password]
else:
    condition = [password1, password2, password3]
然后使用
all()
功能检查
条件下的所有元素是否都存在于f中:

if all(c in f for c in condition):
    print("problem solved")

无论
条件
有一个元素、十个元素还是一百个元素,这都会起作用。

使
条件
始终是一个列表,即使它只有一个项目:

if test1.lower() == "keyword":
    condition = [password]
else:
    condition = [password1, password2, password3]
然后使用
all()
功能检查
条件下的所有元素是否都存在于f中:

if all(c in f for c in condition):
    print("problem solved")
无论
条件
有一个元素、十个元素或一百个元素,这都会起作用。

一种方法是:

if [x for x in condition if x in f]:
   ...
一种方法是:

if [x for x in condition if x in f]:
   ...

为了方便自己,我会列出两种情况下的密码。如果test1是关键字,那么它只是一个关键字列表

if test1.lower() == "keyword":
    passwords = [password]
else:
    passwords = [password1, password2, password3]
然后,对于第二个条件,可以使用Python的内置函数和

f = "password1_password2_password3_jibberish_E=mc2"
if all(pw in f for pw in passwords):
    print("Problem solved")

为了方便自己,我会列出两种情况下的密码。如果test1是关键字,那么它只是一个关键字列表

if test1.lower() == "keyword":
    passwords = [password]
else:
    passwords = [password1, password2, password3]
然后,对于第二个条件,可以使用Python的内置函数和

f = "password1_password2_password3_jibberish_E=mc2"
if all(pw in f for pw in passwords):
    print("Problem solved")

这里的问题是,如果其中任何一个都是真的,它就通过了,但我需要它们都是真的好的,您可以将条件更改为ALL()。我编辑了它这里的问题是,如果其中任何一个是真的,它就通过了,但我需要它们都是真的好的,你可以将条件改为ALL()。我编辑过《itamen》。我将掷硬币,看看谁得到它,因为内比尤也有它,只是和“任何”而不是“所有”阿门。我会掷硬币看看谁得到它,因为内比尤也有它,只是用“任何”而不是“所有”