Python-Day02-列表2

来源:互联网 发布:淘宝视频教程全集 编辑:程序博客网 时间:2024/06/02 02:35

Python的列表使用2:

1.列表中放入列表:

names = ["Jane","Nike",["wiiknow","ZYQ"],"Mike","kenvie","Apple"]    #列表中插入列表print(names)          #结果:['Jane', 'Nike', ['wiiknow', 'ZYQ'], 'Mike', 'kenvie', 'Apple']print(names[2][0])   #通过names[2][0]获取:wiiknow的位置,类似于二维列表  结果:"wiiknow"#切入操作print(names[0:-1:2])  #含义:从0到-1,每两个输出一个,结果:['Jane', ['wiiknow', 'ZYQ'], 'kenvie']print(names[::2])     #因为0可以省略,所以跟上面结果一样 结果:['Jane', ['wiiknow', 'ZYQ'], 'kenvie']


2.浅复制和深复制

当列表中含义子列表时,会出现浅copy和深copy的说法:

浅copy:

复制一个列表给新的列表,当任何一个列表里的子列表有任何改动时,所有列表里的子列表都会更新;

原因:表复制时,当出现子列表,并不是复制其中的值给予新列表,而是把该子列表的内存地址赋予新列表,

所以任何一个列表改动子列表时,实际是直接在该内存直接改值。

浅copy有三种方法:

1.使用copy库中的copy函数

2.直接等于,并指定序列号

3.使用list方法

import copy  #需导入copy库person = ["Name",["saving",100]]#浅复制:person2 = copy.copy(person)person3 = person[:]     #[:] 表示提取person集合中的所有元素person4 = list(person)print("person2:",person2)print("person3:",person3)print("person4:",person4)
结果:

person2: ['Name', ['saving', 100]]
person3: ['Name', ['saving', 100]]
person4: ['Name', ['saving', 100]]


联表改动:

person2[0]=["MyName"]person3[0]=["HerName"]person2[1][1] = 50;print("name2:",person2)print("name3:",person3)print("name:",person)

结果:

person2: [['MyName'], ['saving', 50]]
person3: [['HerName'], ['saving', 50]]
person: ['Name', ['saving', 50]]


深度copy:

如果想要复制后值不会随着联动改变,就需要使用深度复制的函数,copy库中的deepcopy()方法

实例:

names = ["Jane","Nike",["wiiknow","ZYQ"],"Mike","kenvie","Apple"]names3 = copy.deepcopy(names); #copy中的深度复制方法names[2][0] = "Kind";print("names:",names);print("names3:",names3);
结果:

names: ['LXB', 'Nike', ['Kind', 'queen'], 'Mike', 'kenvie', 'Apple']
names3: ['LXB', 'Nike', ['wiiknow', 'queen'], 'Mike', 'kenvie', 'Apple']


3.列表循环

列表循环使用的类似for的遍历循环,这比别的语言使用起来更简便:
names = ["Jane","Nike",["wiiknow","ZYQ"],"Mike","kenvie","Apple"]for i in names:    print(i);

结果:
Jane
Nike
['wiiknow', 'ZYQ']
Mike
kenvie
Apple





原创粉丝点击