如何在给定列表中交换数字?
例如:
list = [5,6,7,10,11,12]
我想将12
与5
交换。
是否有内置的Python函数可以让我这样做?
答案 0 :(得分:19)
>>> lis = [5,6,7,10,11,12]
>>> lis[0], lis[-1] = lis[-1], lis[0]
>>> lis
[12, 6, 7, 10, 11, 5]
上述表达式的
expr3, expr4 = expr1, expr2
RHS上的第一项收集在元组中,然后收集tuple is unpacked并分配给LHS上的项目。
>>> lis = [5,6,7,10,11,12]
>>> tup = lis[-1], lis[0]
>>> tup
(12, 5)
>>> lis[0], lis[-1] = tup
>>> lis
[12, 6, 7, 10, 11, 5]
答案 1 :(得分:1)
您可以使用此代码进行交换,
list[0],list[-1] = list[-1],list[0]
答案 2 :(得分:1)
您可以使用" *"操作
my_list = [1,2,3,4,5,6,7,8,9]
a, *middle, b = my_list
my_new_list = [b, *middle, a]
my_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
my_new_list
[9, 2, 3, 4, 5, 6, 7, 8, 1]
阅读here了解详情。
答案 3 :(得分:0)
使用您要更改的号码的索引。
In [38]: t = [5,6,7,10,11,12]
In [40]: index5 = t.index(5) # grab the index of the first element that equals 5
In [41]: index12 = t.index(12) # grab the index of the first element that equals 12
In [42]: t[index5], t[index12] = 12, 5 # swap the values
In [44]: t
Out[44]: [12, 6, 7, 10, 11, 5]
然后你可以进行快速交换功能
def swapNumbersInList( listOfNums, numA, numB ):
indexA = listOfNums.index(numA)
indexB = listOfNums.index(numB)
listOfNums[indexA], listOfNums[indexB] = numB, numA
# calling the function
swapNumbersInList([5,6,7,10,11,12], 5, 12)
答案 4 :(得分:0)
另一种方式(不那么可爱):
mylist = [5, 6, 7, 10, 11, 12]
first_el = mylist.pop(0) # first_el = 5, mylist = [6, 7, 10, 11, 12]
last_el = mylist.pop(-1) # last_el = 12, mylist = [6, 7, 10, 11]
mylist.insert(0, last_el) # mylist = [12, 6, 7, 10, 11]
mylist.append(first_el) # mylist = [12, 6, 7, 10, 11, 5]
答案 5 :(得分:0)
array = [5,2,3,6,1,12]
temp = ''
lastvalue = 5
temp = array[0]
array[0] = array[lastvalue]
array[lastvalue] = temp
print(array)
希望这有帮助:)
答案 6 :(得分:0)
def swap(the_list):
temp = the_list[0]
the_list[0] = the_list[-1]
the_list[-1] = temp
return the_list