首页 > 解决方案 > 如何交换python列表中的数字

问题描述

Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [1,2,0]
>>> a[0], a[a[0]] = a[a[0]], a[0]
>>> a
[2, 2, 1]

首先,为什么结果不是[2, 1, 0]

其次,在这种情况下交换号码的最佳做法是什么?

标签: python

解决方案


在你的行中:

a[0], a[a[0]] = a[a[0]], a[0]

表达方式:

a[a[0]], a[0]

将首先评估,然后将结果解包并分配给 a[0], a[a[0]],首先a[0]将等于2这意味着a[a[0]]将与 相同a[2],等效于:

a[0], a[2] = a[a[0]], a[0]

您可以使用以下方法进行交换:

a[0], a[1] = a[1], a[0]

推荐阅读