一.列表
1.1 列表创建
1 2 3 4 5 6 7 8 9 10 11
| a = list() print(a)
b = list([1,2,3]) print(b)
c = list('abc') print(c)
|
[]
[1, 2, 3]
['a', 'b', 'c']
总结:只要可以取下标,就可以传入列表。
1.2 列表运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| a = [100,200,300] b = [400,500,600] c = a + b print(c)
a = [1,2] b = a * 3 print(b)
a = [1,2,3] a+=[4,5,6] print(a)
a = [1,2,3] a*=3 print(a)
a = [1,2,3,4,5,6] print(1 in a)
|
[100, 200, 300, 400, 500, 600]
[1, 2, 1, 2, 1, 2]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
True
1.3 列表基本访问
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| a = [1,2,3,4,5] print(a[0])
a = [1,2,3,4,5] print(a[1:3])
a = [[1,2,3], [4,5,6], [7,8,9]]
print(a[1][0])
print(a[0:2])
print(a[0:2][0])
print(a[0:2][0][0])
|
1
[2, 3]
4
[[1, 2, 3], [4, 5, 6]]
[1, 2, 3]
1
1.4 列表添加元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| x = [1,2,3] x.append(4) print(x)
x = [1,2,3] x.insert(1,4) print(x)
x = [1,2,3] x.extend([4,5,6]) print(x)
|
[1, 2, 3, 4]
[1, 4, 2, 3]
[1, 2, 3, 4, 5, 6
扩展:id()函数的运用
其可以查看一个变量保存的数据地址.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| x = [1,2,3] print(id(x)) x.append(4) print(id(x))
a = [1,2,3] print(id(a)) b = [4,5,6] a = a + b print(id(a))
|
2278015630464
2278015630464
2277993865920
2278015819136
1.5 修改元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| a = [1,2,3,4,5] a[3] = 100 print(a)
a = [1,2,3,4,5] a[4:100] = [1,2] print(a) a = [1,2,3,4,5] a[1:3] = [100,200] print(a)
|
[1, 2, 3, 100, 5]
[1, 2, 3, 4, 1, 2]
[1, 100, 200, 4, 5]
总结:若只修改一个元素,必须在列表序列范围内。若用切片修改数据,可以超出范围,但必须是可迭代对象且符合条件。
1.6 删除方法
- remove是直接删除列表内所含元素值,
- pop是删除列表内指定位置的元素,
- clear是清空列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| a = [1,2,3,4,5,6,7,8,9,10] a.remove(1) print(a)
a = [1,2,3,4,5,6,7,8,9,10] a.pop(0) print(a)
a = [1,2,3,4,5,6,7,8,9,10] a.clear() print(a)
a = [1,2,3,4,5,6,7,8,9,10] del a[0] print(a)
del a print(a)
|
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
NameError: name 'a' is not defined
1.7 列表常见API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| a = [1,2,3,4,5] print(len(a))
a = [1,2,3,4,5] print(max(a))
a = [1,2,3,4,5] print(min(a))
a = (1,2,3,4,5) print(list(a))
|
5
5
1
[1, 2, 3, 4, 5]
扩展API
1 2 3
| a = [1,2,3,4,5] print(a.index(3))
|
2
二.元组
2.1 元组基本属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| x = () print(x)
x = (1,2,3,4) print(x[1:7])
x = (1,) print(x) print(type(x))
y = (1) print(type(y))
x = 1,2,3,'hello' print(x)
|
()
(2, 3, 4)
(1,)
<class 'tuple'>
<class 'int'>
(1, 2, 3, 'hello')
2.2 创建元组
1 2 3 4 5 6
| x = tuple() print(x)
a = tuple(range(10)) print(a)
|
()
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
由于元组不可变,所以只能删除整个变量,不能对其中元素操作。
1 2 3 4 5 6 7 8 9 10 11 12
| x = (1,2,3,4) print(x[1:7])
x = (1,2,3,4) a,b,c,d = x print(a,b,c,d)
a,b = (1,2) print(a,b)
|
(2, 3, 4)
1 2 3 4
1 2
2.4 元组运算
元组虽不可变,但其可以进行叠加,原元组不变,可合并为一个新元组。
1 2 3 4 5 6 7 8 9 10
| a = (1,2) b = (3,4) c = a + b print(c)
a = (1,2) b = a * 3 print(b)
|
(1, 2, 3, 4)
(1, 2, 1, 2, 1, 2)
2.5 元组常用API
参考列表操作,包括index()也一样,只有最后的转列表为元组有区别,方法为tuple()。
1 2 3 4 5
| a = (1,2,3) b = [1,1,2] print(a.count(1)) print(b.count(1))
|
1
2
三.字典
3.1 字典简介
- 字典是可变容器{}
- 字典的数据是无序的
- 字典由键值对构成,键实际就相当于下标
3.2 字典创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| a = {1:2,2:3} print(a) print(type(a))
a = {1:2,2:{1:2,2:3}} print(a)
x = 'hello' y = 1 a = {x:1,y:2} print(a)
a = {1:2,1:3} print(a)
a = dict(a=1,b=2,c=3) print(a) b = dict([[1,2],[3,4]]) print(b) c = dict([[1,2]]) print(c)
|
{1: 2, 2: 3}
<class 'dict'>
{1: 2, 2: {1: 2, 2: 3}}
{'hello': 1, 1: 2}
{1: 3}
{'a': 1, 'b': 2, 'c': 3}
{1: 2, 3: 4}
{1: 2}
注意:使用dict()时需要括号内的数据成对出现,因为要组成键值对。
3.3 字典基本操作
- in 与not in用来表示一个键是否在字典中
- 可以向列表、元组一样通过”键”下标来访问字典中的值
3.4 字典常用API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| a = {'name':'zhangsan','age':18,'sex':'male'} print(len(a))
a = {'name':'zhangsan','age':18,'sex':'male'} print(str(a),type(str(a)))
a = {'name':'zhangsan','age':18,'sex':'male'} a.clear() print(a)
a = {'name':'zhangsan','age':18,'sex':'male'} b = a.copy() print(b)
a = {'name':'zhangsan','age':18,'sex':'male'} print(a.get('name')) print(a.get('address','not found'))
a = {'name':'zhangsan','age':18,'sex':'male'} print(a.items(),type(a.items()))
a = {'name':'zhangsan','age':18,'sex':'male'} print(a.keys(),type(a.keys()))
a = {'name':'zhangsan','age':18,'sex':'male'} print(a.values(),type(a.values()))
a = {'name':'zhangsan','age':18,'sex':'male'} b = {'address':'beijing','phone':'123456789'} a.update(b) print(a)
a = {'name':'zhangsan','age':18,'sex':'male'} print(a.pop('name')) print(a.pop('address','not found'))
|
3
{'name': 'zhangsan', 'age': 18, 'sex': 'male'} <class 'str'>
{}
{'name': 'zhangsan', 'age': 18, 'sex': 'male'}
zhangsan
not found
dict_items([('name', 'zhangsan'), ('age', 18), ('sex', 'male')]) <class 'dict_items'>
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>
dict_values(['zhangsan', 18, 'male']) <class 'dict_values'>
{'name': 'zhangsan', 'age': 18, 'sex': 'male', 'address': 'beijing', 'phone': '123456789'}
zhangsan
not found
四.集合
4.1 集合基本介绍
集合分set和固定集合frozenset
set的元素值必须是不可变的,不能存储 list、dict 等可变类型。
- 集合是可变的容器,固定集合是不可变的集合
- 集合内的数据绝对不同
4.2 集合创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| a = set([1,2,3,4,5]) print(a,type(a))
a = set() b = {} print(a,type(a)) print(b,type(b))
a = [1,2,3,4,5,6,1,2,2,3] b = set(a) print(b)
|
{1, 2, 3, 4, 5} <class 'set'>
set() <class 'set'>
{} <class 'dict'>
{1, 2, 3, 4, 5, 6}
来三个容易绕住你的问题 >V<
1 2 3 4 5 6 7 8 9 10 11
| a = {(10,20,30),(20,10,30)} print(a)
a = {(10),(10)} print(a)
a = {(10,),(10,)} print(a)
|
{(20, 10, 30), (10, 20, 30)}
{10}
{(10,)}
总结:
一定要把基础学牢,前面的东西要学会
4.3 集合操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| a = {1,2,3} a.add(4) print(a)
a = {1,2,3} a.update([4,5,6],(7,8,9)) print(a)
a = {1,2,3} a.remove(1) print(a)
a = {1,2,3} a.discard(4) print(a) ''' pop()对集合某种排序(有但不清楚,所以其实是固定排序),删除第一个元素并显示,如果集合为空,会报错 方便记的,pop()就是随机删除一个元素并显示 ''' a = {1,2,3} b = a.pop() print(a) print(b)
|
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{2, 3}
{1, 2, 3}
{2, 3}
1
注:尽管集合无序,但可以用for循环来遍历集合
4.4 判断集合是否含某元素
1 2 3 4 5
| a = {1,2,3} print(2 in a) b = {1,2,3,4,5} print(3 not in b)
|
True
False
4.5 集合常用API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| a = {1,2,3} a.add(4) print(a)
a = {1,2,3} a.clear() print(a)
a = {1,2,3} b = a.copy() print(b)
a = {1,2,3} b = {2,3,4} print(a.difference(b)) print(a)
a = {1,2,3} b = {2,3,4} a.difference_update(b) print(a) print(b)
a = {1,2,3} b = {2,3,4} print(a.intersection(b))
a = {1,2,3} b = {2,3,4} a.intersection_update(b) print(a) print(b)
a = {1,2,3} b = {2,3,4} print(a.isdisjoint(b))
a = {1,2,3} b = {2,3} print(a.issubset(b))
a = {1,2,3} b = {2,3} print(a.issuperset(b))
a = {1,2,3} b = {2,3,4} print(a.symmetric_difference(b)) print(a)
a = {1,2,3} b = {2,3,4} a.symmetric_difference_update(b) print(a)
a = {1,2,3} b = {2,3,4} print(a.union(b))
a = {1,2,3} print(len(a))
|
{1, 2, 3, 4}
set()
{1, 2, 3}
{1}
{1, 2, 3}
{1}
{2, 3, 4}
{2, 3}
{2, 3}
{2, 3, 4}
False
False
True
{1, 4}
{1, 2, 3}
{1, 4}
{1, 2, 3, 4}
3