我试图理解一个python函数,它接受一个列表并重新排列列表中的元素
我试图理解我试图理解一个python函数,它接受一个列表并重新排列列表中的元素,python,Python,我试图理解change+=change>=I在这个python代码中做了什么。这段代码的目的是获取一个列表并返回它,但是要重新排列元素的位置 import random def random_shuffle (lst): len1 = len(lst) for i in range(len1): change = random.randrange(len1 - 1) change += change >= i lst [i],
change+=change>=I
在这个python代码中做了什么。这段代码的目的是获取一个列表并返回它,但是要重新排列元素的位置
import random
def random_shuffle (lst):
len1 = len(lst)
for i in range(len1):
change = random.randrange(len1 - 1)
change += change >= i
lst [i], lst[change] = lst[change], lst[i]
return lst
您可以在Python REPL中轻松地尝试这一点:
>>> 4 + (3>1)
5
>>> 4 + (3>5)
4
看看
编写change+=change>=i
的更典型方法可能是:
if change >= i:
change += 1
您可以在Python REPL中轻松地尝试这一点:
>>> 4 + (3>1)
5
>>> 4 + (3>5)
4
看看
编写change+=change>=i
的更典型方法可能是:
if change >= i:
change += 1
change>=i
是True
还是False
取决于比较是真还是假
在需要数字的地方使用布尔值时,True==1
和False==0
。根据情况,它可能是change+=1
或change+=0
所以它相当于:
if change >= i:
change += 1
else:
change += 0
由于将0
添加到一个数字没有效果,因此可以进一步简化为
if change >= i:
change += 1
change>=i
是True
还是False
取决于比较是真还是假
在需要数字的地方使用布尔值时,True==1
和False==0
。根据情况,它可能是change+=1
或change+=0
所以它相当于:
if change >= i:
change += 1
else:
change += 0
由于将0
添加到一个数字没有效果,因此可以进一步简化为
if change >= i:
change += 1
所以我从i到列表的长度。然后将更改分配给一个介于0和列表长度-1之间的随机数 “>=”的优先级高于“+=”,因此请首先查看“>=”i 因此,如果变化大于i,则返回True 然后看+=,change+=True加1表示更改,change+=False加0表示更改
然后最后一行交换这两个项目。因此我从i到列表的长度。然后将更改分配给一个介于0和列表长度-1之间的随机数 “>=”的优先级高于“+=”,因此请首先查看“>=”i 因此,如果变化大于i,则返回True 然后看+=,change+=True加1表示更改,change+=False加0表示更改 然后最后一行交换这两个项目