列表:python基础数据类型之一
其他语言中也有列表的概念,js-->数组,可索引,可切片,可加步长
列表可以存储大量的数据32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。
li = [1, 'txt', {'name': 'python', 'author':'龟叔'}, [2, 3, 4], (5, 6)]
第一:索引,切片,切片+步长。
>>> li[2]
{'name': 'python', 'author': '龟叔'}
>>> li[2:]
[{'name': 'python', 'author': '龟叔'}, [2, 3, 4], (5, 6)]
>>> li[-2::-1]
[[2, 3, 4], {'name': 'python', 'author': '龟叔'}, 'txt', 1]
第二:增删改查
li2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
增
append 末尾追加
>>> li2.append('13')
>>> li2
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', '13']
insert 插入
>>> li2.insert(6, 'Jul')
>>> li2
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', '13']
extend 迭代着追加
>>> li2.extend('abc')
>>> li2
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', '13', 'a', 'b', 'c']
>>> li2.extend(['aa', 'bb'])
>>> li2
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', '13', 'a', 'b', 'c', 'aa', 'bb']
删除
pop 按照索引去删除,返回所删除的元素
li3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
>>> li3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
>>> li3.pop(0)
'Jan'
>>> li3
['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
remove 按照元素删除 成功无返回值,不成功报错
li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3.remove('Feb')
>>> li3
['Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3.remove('Feb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
clear 清空后原变量为空数组
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3.clear()
>>> li3
[]
del 按照索引,切片,切片+步长,以及能在内存里删除整个数组
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> del li3[0]
>>> li3
['Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> del li3[-2:]
>>> li3
['Mar', 'Apr', 'May']
>>> li = [1,3, 3,34,9,9]
>>> del li[::2]
>>> li
[3, 34, 9]
>>> del li3
>>> li3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'li3' is not defined
改
按照索引
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3[0] = 'February'
>>> li3
['February', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
按照切片: 原数组可能扩充也可能缩小
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3[:2] = [1, 2, 3, 4]
>>> li3
[1, 2, 3, 4, 'Apr', 'May', 'Jun', 'Jul']
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3[1:4] = [1, 2]
>>> li3
['Feb', 1, 2, 'Jun', 'Jul']
按照切片+步长 :只能一一对应
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3[1:4] = [1, 2]
>>> li3
['Feb', 1, 2, 'Jun', 'Jul']
查:索引,切片,切片+步长
for 循环
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> for i in li3:
... print(i)
...
Feb
Mar
Apr
May
Jun
Jul
其他方法
# len
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> len(li3)
6
# count
>>> li3.count('Feb')
1
# index 如同str一样:没有会报错
>>> li3.index('bad')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'bad' is not in list
>>> li3.index('Mar')
1
# sort()-->从小到大,当有reverse=True时-->从大到小
>>> li3 = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
>>> li3.sort()
>>> li3
['Apr', 'Feb', 'Jul', 'Jun', 'Mar', 'May']
>>> li3.sort(reverse=True)
>>> li3
['May', 'Mar', 'Jun', 'Jul', 'Feb', 'Apr']