如何切换列表中的值以打印列表的替换版本?

时间:2016-10-19 20:07:10

标签: list python-3.x loops for-loop

我在查找如何在长列表中切换数字时遇到了一些麻烦。

例如,如果要有一个列表:

"*$"

并希望以以下形式打印:

"  *"
" *$*"
"*$*$*"

使用for循环切换每对。我想做类似的事情:

numbers = [1,2,3,4,5,6,7,8] 

但是真的无法进一步发展。

3 个答案:

答案 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]

不确定其他答案,但是这个答案也适用于长度不均匀的列表,并保持最后一项不变。