1.
[False * 9] = []
[False for _ in range(9)] = [False False False ....]
[False * 9]:结果是一个长度为1列表,值为一个字符串。
[False for _ in range(9)]:结果是一个长度为9的列表。
2.
nums = [-1,4,3,1] i=1 nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]
和
i=1
k = nums[i]-1
nums[i], nums[k] = nums[k], nums[i]
结果分别为[4,1,3,1],[-1,1,3,4]。
nums[1], nums[nums[1]-1] = nums[nums[1]-1], nums[1]的赋值流程:
1) 先右边计算nums[nums[1]-1], nums[1] = 1, 4。
2)将1赋值给左边的nums[1],此时nums=[-1,1,3,1]。
3)将4赋值给左边的num[nums[1]-1],但是此时的nums[1]不是4而是1,所以nums[nums[1]-1]=nums[0],所以此时4被赋值给nums[0]。
总结:对于我这样的小白,如果在python中需要进行交换的值在多层嵌套中(eg. nums[nums[nums[]]]),解决办法:
a)使用传统的三段式进行交换。
b)把包含嵌套的要交换的值放在前面,nums[1], nums[nums[1]-1] = nums[nums[1]-1], nums[1]是错误的值,但是 nums[nums[1]-1], nums[1] = nums[1],nums[nums[1]-1]值是对的。因为nums[nums[1]-1]中的nums[1]的值还没有改变。所以只要先计算嵌套中的值就行了。
本文发布于:2024-01-29 06:26:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648077013338.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |