我在查找如何在长列表中切换数字时遇到了一些麻烦。
例如,如果要有一个列表:
"*$"
并希望以以下形式打印:
" *"
" *$*"
"*$*$*"
使用for循环切换每对。我想做类似的事情:
numbers = [1,2,3,4,5,6,7,8]
但是真的无法进一步发展。
答案 0 :(得分:0)
试试这个:
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]
答案 1 :(得分:0)
取两半,然后重新排列:
numbers = [1,2,3,4,5,6,7,8]
first = numbers[::2]
second = numbers[1::2]
numbers_2 = sum(map(list, zip(second, first)), [])
答案 2 :(得分:0)
循环每秒索引并交换两个相邻的项目:
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]
不确定其他答案,但是这个答案也适用于长度不均匀的列表,并保持最后一项不变。