python中怎么快速的元素交换? Python中==和is有什么区别?可变对象和不可变对象都有哪些? - python小知识1

元素交换、 ==和is的区别以及可变对象和不可变对象的区别

元素交换:

# 适用于大部分变量
# 方法一(Python专属)
a = 0,1,2,3
b = 4,5,6
a,b = b,a
print('a =',a) # a = (4, 5, 6)
print('b =',b) # b = (0, 1, 2, 3)
# 方法二(所有编程语言通用方法)
a = 0,1,2,3
b = 4,5,6
temp = a
a = b
b = temp
print('a =',a)
print('b =',b)

==、is的区别

双等号和is都是进行对比,但是双等号对比的是变量值是否一样,而is对比的是变量的id是否一样。!=和not is同理。(在不可变对象tuple中元素如果一样,id则肯定相同)

a = [0,1,2,3]
b = a
c = [0,1,2,3]
print(id(a)) # 1976820978248
print(id(b)) # 1976820978248
print(id(c)) # 1976820978760
print(a == b, a == c) # True True
print(a is b, a is c) # True False

可变对象和不可变对象

可变对象:可以改变内部值但保持ID不变的,比如列表(list)字典(dict)
不可变对象:只要想改变,哪ID必定会改变,比如字符串(str)整数(int)元组(tuple)等

a = [0,1,2,3]
print(id(a),a) # 3015609766472 [0, 1, 2, 3]
a[0] = 1
print(id(a),a) # 3015609766472 [1, 1, 2, 3]
a = [1,1,2,3]
print(id(a),a) # 3015611046216 [1, 1, 2, 3]
发布了47 篇原创文章 · 获赞 23 · 访问量 3438

猜你喜欢

转载自blog.csdn.net/qq_39611230/article/details/102577515
今日推荐