无法解释if-else块的Python语法

无法解释if-else块的Python语法,python,Python,下面是一个基于字符串操作的简单级别编码问题:- 通过定义正数和负数的条件,我可以使用for a循环来解决这个问题 但是,在研究其他解决方案时,我在python中为同一个问题找到了这个有趣的解决方案 在过去的一年中,我一直在python中工作,但这是我第一次接触到if-else块的以下语法 if[str(x)>A[i],str(x)A[i],str(x)A[i]之一,str(x)A[i],str(x)A[i]条件 如果(A[0]='-')==True,True转到1并检查[str(x)>A[i]

下面是一个基于字符串操作的简单级别编码问题:-

通过定义正数和负数的条件,我可以使用for a循环来解决这个问题

但是,在研究其他解决方案时,我在python中为同一个问题找到了这个有趣的解决方案

在过去的一年中,我一直在python中工作,但这是我第一次接触到if-else块的以下语法
if[str(x)>A[i],str(x)

以下是完整的解决方案:

def maxValue(self, A, x):
        for i in xrange(len(A)):
            if [str(x) > A[i], str(x) < A[i]][A[0] == '-']:
                return A[:i] + str(x) + A[i:]
        return A + str(x)
def最大值(self,A,x):
对于x范围内的i(len(A)):
如果[str(x)>A[i],str(x)

如果有人能向我提供相关文档,我将不胜感激。写这篇文章的不太老套的方法是:

def maxValue(self, A, x):
    for i in xrange(len(A)):        
        if (A[0] == '-' and str(x) < A[i]) or (A[0] != '-' and str(x) > A[i]):
            return A[:i] + str(x) + A[i:]
    return A + str(x)
def最大值(self,A,x):
对于x范围内的i(len(A)):
如果(A[0]='-'和str(x)A[i]):
返回一个[:i]+str(x)+A[i:]
返回A+str(x)
说明:如果检查
[str(x)>A[i]之一,str(x)
数组值取决于条件
A[0]='-'

如果
A[0]='-'
False
,它将变成
0
,从而获得
[str(x)>A[i],str(x)
并检查
str(x)>A[i]
条件


如果
(A[0]='-')==True
True
转到
1
并检查
[str(x)>A[i]、str(x)
str(x)
,这不是任何新语法,只是对你已经知道的东西的非常规使用。担任长期职位的
[]
是做什么的?后缀位置的
[]
有什么作用?布尔人在被迫使用
int
时会做什么?对不起,没有准确地告诉你这是一种旧样式:
X如果C或者Y
写为
[Y,X][C]
。请注意,在这种形式中,X和Y都被计算,而if表达式中没有计算。因此,基本上,
X if C else Y
和[Y,X][C]`在执行时在功能上是不同的?第一种表达方式要安全得多,对吧?谢谢DanD和hobbs的见解。我完全理解了这些场景,甚至还获得了一些关于python 2.x和python 3.x的不同之处的额外信息—python 2.x和python 3是否也一样。x@AlokRaj是的,您可以使用Python2.x中的
print([2,3][False]==2和[2,3][True]==3)进行测试,True和False可以重新分配,但在Python 3.x中,True和False是关键字,始终等于1和0。这是一个非常小但非常棒的概念:D