我在計算如何在長列表中切換數字時遇到了一些麻煩。如何切換列表中的值以打印列表的交替版本?
例如,如果是具有列表:
numbers = [1,2,3,4,5,6,7,8]
,並希望代替打印的形式:
numbers_2 = [2,1,4,3,6,5,8,7]
使得每對將被切換,利用換循環。我想過做類似這樣的事情:
for i in range(0, len(numbers), 2):
但是沒有真正得到更多。
我在計算如何在長列表中切換數字時遇到了一些麻煩。如何切換列表中的值以打印列表的交替版本?
例如,如果是具有列表:
numbers = [1,2,3,4,5,6,7,8]
,並希望代替打印的形式:
numbers_2 = [2,1,4,3,6,5,8,7]
使得每對將被切換,利用換循環。我想過做類似這樣的事情:
for i in range(0, len(numbers), 2):
但是沒有真正得到更多。
循環每秒指數和交換兩個相鄰的項目:
numbers = [1,2,3,4,5,6,7,8]
for i in range(1, len(numbers), 2):
numbers[i-1], numbers[i] = numbers[i], numbers[i-1]
不能確定其他的答案,但是這個也會使用不均勻長度的列表,並且保持最後的項目不變。
試試這個:
def swap_array_elements (a):
for i in range (0, len(a) - 1, 2):
a[i], a[i +1] = a[i + 1], a[i]
return a
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print (swap_array_elements (a))
# prints: [1, 0, 3, 2, 5, 4, 7, 6, 9, 8]
取兩半,並重新安排他們:
numbers = [1,2,3,4,5,6,7,8]
first = numbers[::2]
second = numbers[1::2]
numbers_2 = sum(map(list, zip(second, first)), [])
打印它,或實際上重新排列它? – ShadowRanger