Python的数据类型

Python的数据类型,第1张

Python的数据类型 Python的数据类型
  • mutable(可变)
    1、list – 列表
    2、dict – 字典
    3、set – 集合(不包含重复元素)
  • immutable(不可变)
    1、int – 整型
    2、float – 浮点型
    3、str – 浮点型
    4、tuple – 元组
作为函数参数的时候
  • 可变数据类型:
    函数传递的形式是地址传递,外部定义的变量作为实参被调用时,会跟随函数里面的 *** 作进行改变
    例如:
def bubble_sort(arr):
	n = len(arr)
	for i in range(n-1):
		for j in range(n-i-1):
			if arr[j]>arr[j+1]:
				arr[j],arr[j+1] = arr[j+1],arr[j]

if __name__ == "__main__":
	arr = [5,6,20,14,23,98]
	bubble_sort(arr)
	print(arr) # 这里的输出,会是已经排好序的列表

如果我们不想要 外部定义的变量作为实参被调用时,会跟随函数里面的 *** 作进行改变,只需要在函数开头,对形参进行一次copy(),即可。

def bubble_sort(arr):
	# 只需要加这一行代码,即可
	arr = arr.copy()
	n = len(arr)
	for i in range(n-1):
		for j in range(n-i-1):
			if arr[j]>arr[j+1]:
				arr[j],arr[j+1] = arr[j+1],arr[j]

if __name__ == "__main__":
	arr = [5,6,20,14,23,98]
	bubble_sort(arr)
	print(arr) # 这里的输出,依然是我们定义的列表,不会改变
  • 不可变数据类型
    函数传递的形式是值传递,外部定义的变量作为实参被调用时,不会跟随函数里面的 *** 作进行改变。
    比如:
def func(a):
	a = 5
	print("func内:",a)

a = 2
func(a)
print("func外:",a) # 这里的a 还是等于 2

如果我们想要改变,只需要在函数里面,加一个return,即可

def func(a):
	a = 5
	print("func内:",a)
	return a

a = 2
a = func(a)
print("func外:",a) # 这里的a 就变成了 5

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5157560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存