flag的意思是什么,‘ flag = a > d if reverse else a < d’这一句可以怎么代替?
flag = bool
if a > d:
flag = False
else:
flag = True
return flag
我想这样代替,发现不对。
```python
lst = [6, 2, 4, 4, 5]
def sort(iterable, reverse=False):
def comp(a, d):
flag = a > d if reverse else a < d
return flag
ret = []
for x in iterable:
for i, y in enumerate(ret):
if comp(x, y):
ret.insert(i, x)
break
else:
ret.append(x)
return ret
print(sort(lst, False))
flag是bool类型,并且跟reverse有关系
如果reverse=True,flag=a>d
如果reverse=False,flag=d>a
可以这么改:
def comp(a, d):
flag = d > a
if reverse:
flag = a > d
return flag
flag = a > d if reverse else a < d
这是三元运算符
改为if判断,应该是
if reverse:flag=a>d
else:flag=a<d
其实还可以合并,因为a>d和reverse本身都是bool类型
可以直接这样写
flag=reverse^(a<d)
这阿姨那个替代
```python
lst = [6, 2, 4, 4, 5]
def sort(iterable, reverse=False):
def comp(a, d):
# flag = a > d if reverse else a < d
if a>d:
flag=False
else:
flag=True
return flag
ret = []
for x in iterable:
for i, y in enumerate(ret):
if comp(x, y):
ret.insert(i, x)
break
else:
ret.append(x)
return ret
print(sort(lst, False))
```