Pythonic Swap?

前端 未结 5 555
一整个雨季
一整个雨季 2021-01-08 00:25

I found that i have to perform a swap in python and i write something like this.

arr[first], arr[second] = arr[second], arr[first]

I suppos

5条回答
  •  萌比男神i
    2021-01-08 00:35

    a, b = b, a is about as short as you'll get, it's only three characters (aside from the variable names).. It's about as Python'y as you'll get

    One alternative is the usual use-a-temp-variable:

    self.memberlist[someindexA], self.memberlist[someindexB] = self.memberlist[someindexB], self.memberlist[someindexA]
    

    ..becomes..

    temp = self.memberlist[someindexB]
    self.memberlist[someindexB] = self.memberlist[someindexA]
    self.memberlist[someindexA] = temp
    

    ..which I think is messier and less "obvious"

    Another way, which is maybe a bit more readable with long variable names:

    a, b = self.memberlist[someindexA], self.memberlist[someindexB]
    self.memberlist[someindexA], self.memberlist[someindexB] = b, a
    

提交回复
热议问题