取值 extend rem print 两个 java name 拷贝 blog
创建列表:
- name_list = [‘python‘,‘java‘,‘shell‘,‘c++‘]
- #或
- name_list = list([‘python‘,‘java‘,‘shell‘,‘c++‘])
切片:(切片:取多个元素)
- a = [0,1,2,3,4,5,6]
- print(a[0]) #通过下标访问列表中的元素,下标从0开始计数
- print(a[-2]) #还可以从后往前取,最后一位代表-1
- print(a[1:5]) #从下标1开始取到第五位,包括1,不包括5
- print(a[0:4]) #同上,包括0,不包括4
- print(a[:4]) #同上,从头开始取,0可以不写
- print(a[2:5]) #取第二位到第五位,包括2,不包括5
- print(a[3:-1]) #同上,包括3,不包括-1
- print(a[3:]) #想取最后一位时,可以忽略不写
- print(a[0::2]) #后面的2,代表跳着取值,间隔一个元素
- print(a[::3]) #同上,不过间隔两个元素,0可以忽略不写
追加:
- 1 a.append(‘我是新来的‘)
- 2 print(a)
- 结果:[0, 1, 2, 3, 4, 5, 6, ‘我是新来的‘]
插入:
- 1 a.insert(3,‘在3前面插入一个数据‘)
- 2 print(a)
- 3 a.insert(5,‘在3后面插入一个数据‘)
- 4 print(a)
- 结果:[0, 1, 2, ‘在3前面插入一个数据‘, 3, 4, 5, 6, ‘我是新来的‘]
- [0, 1, 2, ‘在3前面插入一个数据‘, 3, ‘在3后面插入一个数据‘, 4, 5, 6, ‘我是新来的‘]
修改:
- 1 a[3]=‘该换人了‘
- 2 print(a)
- 结果:[0, 1, 2, ‘该换人了‘, 3, ‘在3后面插入一个数据‘, 4, 5, 6, ‘我是新来的‘]
删除:
- 1 del a[3] #指定删除的位置
- 2 print(a)
- 3 a.remove(‘在3后面插入一个数据‘) #指定删除的内容
- 4 print(a)
- 5 a.pop() #默认删除最后一位,也可输入下标删除指定
- 6 print(a)
- 结果:[0, 1, 2, 3, ‘在3后面插入一个数据‘, 4, 5, 6, ‘我是新来的‘]
- [0, 1, 2, 3, 4, 5, 6, ‘我是新来的‘]
- [0, 1, 2, 3, 4, 5, 6]
扩展:
- 1 b = 1,2,3
- 2 print(b)
- 3 a.extend(b)
- 4 print(a)
- 结果:(1, 2, 3)
- [0, 1, 2, 3, 4, 5, 6, 1, 2, 3]
统计:
- 1 print(a.count(3)) #看整数3在列表a中存在几个
- 结果:2
排序:‘数据类型不一样的不可以在一起排序’
(默认顺序:特殊符号,数字,大写字母,小写字母)
- 1 a.sort() #正序
- 2 print(a)
- 3 a.reverse() #翻转
- 4 print(a)
- 结果:[0, 1, 1, 2, 2, 3, 3, 4, 5, 6]
- [6, 5, 4, 3, 3, 2, 2, 1, 1, 0]
获取下标:
- 1 print(a)
- 2 print(a.index(2))
- 结果:[6, 5, 4, 3, 3, 2, 2, 1, 1, 0]
- 5
拷贝:
1、copy(浅copy)
- 1 names = [‘nihao‘,‘zhangsan‘,[‘张三‘,‘李四‘],‘lisi‘,‘wangwu‘]
- 2 _name = names.copy()
- 3 #只复制父列表.子列表相当于只指定一个位置,因此会跟随改变。
- 4 names[3] = ‘lisi2‘
- 5 names[2][0] = ‘张三丰‘
- 6 print(names)
- 7 print(_name)
- 8
- 结果:[‘nihao‘, ‘zhangsan‘, [‘张三丰‘, ‘李四‘], ‘lisi2‘, ‘wangwu‘]
- [‘nihao‘, ‘zhangsan‘, [‘张三丰‘, ‘李四‘], ‘lisi‘, ‘wangwu‘]
2、调用模块的复制(浅copy)
- import copy #定义copy模块
- names = [‘nihao‘,‘zhangsan‘,[‘张三‘,‘李四‘],‘lisi‘,‘wangwu‘]
- _name = copy.copy(names)
- #与_name = names.copy()相同,结果就不赘述了。
- names[3] = ‘lisi2‘
- names[2][0] = ‘张三丰‘
- print(names)
- print(_name)
3、调用模块,只复制原内容,更改后不复制更改内容。(深copy)
- 1 import copy
- 2 names = [‘nihao‘,‘zhangsan‘,[‘张三‘,‘李四‘],‘lisi‘,‘wangwu‘]
- 3 _name = copy.deepcopy(names)
- 4 #真正意义上的拷贝,不考虑后来的变化
- 5 print(names)
- 6 names[3] = ‘lisi2‘
- 7 names[2][0] = ‘张三丰‘
- 8 print(names)
- 9 print(_name)
- 结果:[‘nihao‘, ‘zhangsan‘, [‘张三‘, ‘李四‘], ‘lisi‘, ‘wangwu‘]
- [‘nihao‘, ‘zhangsan‘, [‘张三丰‘, ‘李四‘], ‘lisi2‘, ‘wangwu‘]
- [‘nihao‘, ‘zhangsan‘, [‘张三‘, ‘李四‘], ‘lisi‘, ‘wangwu‘]
列表——python
来源: http://www.bubuko.com/infodetail-2333659.html