1.列表的翻转有以下两种方式:
- 使用内置函数reverse():
nums = [1, 2, 3]
print("addr: ", id(nums))
nums.reverse()
print("addr: ", id(nums))
----------------------------------
addr: 139780430501896
addr: 139780430501896
reverse()函数对列表在内存中的原位置进行反转
- 切片
nums = [1, 2, 3]
print("addr: ", id(nums))
nums = nums[::-1]
print("addr: ", id(nums))
-------------------------------------
addr: 140546264783112
addr: 140546265025992
翻转结果位于内存新的地址上,并且nums指向了新的地址
元组和字符串的翻转
由于元组和字符串都是不可变量,即在赋值后不能再改变,所以它们的翻转只能使用切片的方式:
- 元组
nums = (1, 2, 3)
print("addr: ", id(nums))
nums = nums[::-1]
print("addr: ", id(nums))
-------------------------------------------
addr: 139648912203352
addr: 139648875644176
- 字符串
s = "123"
print("addr: ", id(s))
s = s[::-1]
print("addr: ", id(s))
-----------------------------------------
addr: 140330564073880
addr: 140330527481616