在下面的代码中,如果满足第一个IF条件,则应打印A [0]。如果满足第二个IF条件,则应打印A [1]。
在此代码中,我要打印'B'
A = ['A','a','O','E','B','B']
if ((A[0] == A[2]) or (A[1] == A[3]) or (A[4] == A[5])):
print(A[])
我有20种条件要检查,并希望在一个满足条件的真实条件下打印该值。
答案 0 :(得分:3)
这应该是最简单的方法,一旦A
数组开始增长到成百上千个元素,扩展起来就容易得多:
A = ['A','a','O','E','B','B']
for i in range(0,len(A),2) :
if A[i] == A[i+1] :
print A[i]
break # optionally, if you need just one result
答案 1 :(得分:1)
您将不得不将这些if
语句分成一系列if-elif
。
if A[0] == A[1]:
print(A[0])
elif ...
在python 3.8中,您也许可以使用赋值表达式。但是不确定,因为python 3.8仅在beta中,并且我还没有对其进行测试。
答案 2 :(得分:0)
尝试一下:
A = ['A','a','O','E','B','B']
if A[0] == A[1]:
print(A[0])
elif A[2] == A[3]:
print(A[2])
elif A[4] == A[5]:
print(A[4])
或者,如果您希望同时打印多个条件,则可以执行以下操作:
A = ['A','a','O','E','B','B']
if A[0] == A[1]:
print(A[0])
if A[2] == A[3]:
print(A[2])
if A[4] == A[5]:
print(A[4])
在这种情况下,如果所有三件事都评估为True
,则将看到所有这三件事都已打印。
编辑:要回答有关20的问题,如果它们都具有相同的逻辑(所有条件),则可以编写如下内容。
for i in range(0, len(A), 2):
n = i + 1
if A[i] == A[n]:
print(A[i])
这将适用于任何长度的A
。
答案 3 :(得分:0)
A = ['A','a','O','E','B','B']
print(next(x[0] for x in zip(A[0::2], A[1::2]) if x[0] == x[1]))
Works as follows: A[0::2] are even elements of the array A[1::2] are odd elements of the array zip(A[0::2], A[1::2]) => (A[0], A[1]), (A[2], A[3]), ... (x[0] for x in zip(A[0::2], A[1::2]) if x[0] == x[1])) Creates a generator which only has an output when a pair (i.e. (A[i], A[i+1]) has the same value (i.e. A[i] == A[i+1]). x[0] corresponds to the first element of the pair x.
next(...)
返回生成器的下一个输出(请参见https://www.programiz.com/python-programming/methods/built-in/next)