"""
可变不可变列表,字典总结
列表,字典等不可变类型,在函数外部,通过赋值进行更改列表名list1 = ['Marry'],列表的内存地址会发生变化,产生新的列表
使用方法修改列表,不会产生变化
但是在函数内部,通过赋值修改列表,不会对外部数据进行修改,但是使用方法修改时候,会对外部数据进行修改

"""

在函数外部使用时候,方法和赋值的区别
 1 #  Learner BM
 2 """
 3 1\什么是引用,python中,变量和值的存放地为不同的地方
 4 
 5 值存储在内存中,每个内存有一个内存地址
 6 引用就是内存地址
 7 a=1
 8 内部流程理解为
 9 
10 a是一个数据, 需要通过内存地址  1550829488   才能找到数据1
11 
12 a 对应内存地址  '1550829488'  找到 数值  '1'
13 若定义
14 b =a
15 则变量b会通过 '1550829488' 招待 数值 '1'
16 
17 python中,变量,以及函数的参数,函数返回值 都是通过引用进行传递的,变量的变化不会变更最终数据的值,
18 只是变更的 变量的引用地址,  值当没有引用产生的时候,会被python的解释器进行清理
19 
20 
21 """
22 a = 1
23 print(id(a))
24 
25 """
26 2 什么是可变类型,不可变类型
27     python中 数字,字符串,元祖 属于不可变类型
28             列表,字典属于可变类型,使用方法修改内部数值可以变
29                 (赋值语句会创建新列表字典)
30     什么是可变,不可变,意思就是变量一旦定义后
31     内存中存储的值,是否允许被修改,
32 
33 """
34 # 定义列表
35 list1 = ['Lily', 'Hanmeimei', 'Lucy']
36 # 输出内存地址
37 print('list的内存地址是', id(list1))
38 # 使用方法,修改列表的值
39 list1.append('kate')
40 print('list的内存地址使用append方法后地址是', id(list1))
41 #  内存地址不会发生变化
42 print(list1)
43 
44 # ******使用复制语句,对列表进行操作list1[] =['Marry'] 相当于创建新列表,修改了变量的引用
45 list1 = ['Marry']
46 print('list的内存地址使用赋值后地址是', id(list1))
47 print(list1)
48 
49 """
50 字典的key只能使用不可变类型, 字符串,元祖,数字,(不能使用列表或字典作为KEY)
51 
52 """
53 #  定义一个普通字典
54 dic1 = {(1, 2, 3): 'hello'}
55 
56 
57 """
58 可变不可变列表,字典总结
59 列表,字典等不可变类型,在函数外部,通过赋值进行更改列表名list1 = ['Marry'],列表的内存地址会发生变化,产生新的列表
60     使用方法修改列表,不会产生变化
61     但是在函数内部,通过赋值修改列表,不会对外部数据进行修改,但是使用方法修改时候,会对外部数据进行修改
62 
63 """
View Code
可变类型的数据,作为参数传递给函数时候,若使用赋值语句在函数内修改参数,不会影响函数外部数据
但 使用方法修改时候,会影响外部数据
 1 """"
 2 可变类型的数据,作为参数传递给函数时候,若使用赋值语句在函数内修改参数,不会影响函数外部数据
 3 但  使用方法修改时候,会影响外部数据
 4 
 5 
 6 """
 7 
 8 """
 9 
10 函数内部修改参数的数值,最终不会影响外部的实参变量
11 
12 例如 函数外部定义变量,通过参数传递给函数内部,但是在函数内部通过赋值更改参数的值
13     修改的是参数的值,不会修改到外部变量的值
14 
15 
16 """
17 #  可变类型的数据list
18 list = [1,2,3]
19 #  将list作为参数传递给函数内部
20 def demo(list):
21     #  函数内部使用方法修改参数的值,会影响函数外部
22     list.append(9)
23     print('函数内部的list使用append方法修改',list)
24 demo(list)
25 print('函数外部的最终list的值',list)
26 """
27 函数外部定义的可变,不可变类型的数据,无论函数内将参数如何进行修改,不会影响函数外部的数据
28 
29 最终输出-函数内部的list使用append方法修改 [1, 2, 3, 9]
30 最终输出-函数外部的最终list的值 [1, 2, 3, 9]
31 
32 """
View Code

 






posted on 2020-03-06 21:43  RRRRRRR1  阅读(20)  评论(0)    收藏  举报