python - 如何交换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]
?
其次,在这种情况下交换号码的最佳做法是什么?
解决方案
在你的行中:
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]
推荐阅读
- scala - 在scala中将字符串转换为参数化类型
- node.js - 如何在 webapp 中保持 npm idle-session-timeout 一致?
- ldap - ldap 搜索属性 X 包含多个值的对象
- java - 从二维数组中的所有值填充一维数组
- python - 正则表达式匹配线性系统 ax+by=c
- git - 我可以配置git如何检测合并冲突吗
- php - 如何从字符串中删除 H1 标签和内部内容
- android-studio - Visual Studio 模拟器:如何使用 PC 的键盘输入(硬件)而不是 Android 软键盘
- c - 使用 mmap 映射共享内存大小超过 ftruncate 完成的设置大小
- c# - 使用数字的随机目录生成器,但当我包含字母并且没有错误时不会创建任何内容