在python中,数据类型主要由以下几类组成:
- 列表(list): [a, b]
- 元组(tuple):(a, b, )
- 集合(set): {a, b}
- 字典(Dictonary): {a: ‘aaa’, b: ‘bbb’}
1. 列表
列表(List)
- 列表是Python中使用最频繁的数据类型,专门用于存储一串信息
- 列表是一种有序和可更改的集合。允许重复的元素
- 列表使用
[]
定义,元素之间使用,分隔。例:[1,2, ...]
- 列表的索引从位置0开始
索引
就是元素在列表中的位置编号
,索引又可以被称为下标
注意:
从列表中取值时,如果超过索引范围
,程序会报错
- 虽然列表可以存储不同类型元素,但是曰常中一般存储相同类型的元素
如何使用列表
- 列表[索引]: 从列表中取值,获取指定索引的元素
- 列表[开始索引:结束索引:步长]:
- 返回从开始索引到结束索引-1的列表,如果设置步长,按步长跳过元素
- len(列表): 获取列表的长度
- 元素 in 列表: 判断元素是否在列表中
- 列表.count(元素): 返回指定元素在列表中的个数
- 列表.index(元素): 返回指定元素在列表中第一次出现的索引,查找失败时报错
- 列表.sort(): 从小到大排序,括号内增加reverse=True ,则是从大到小排序
- 列表_reverse(): 逆序(反转)列表
- 列表.clear(): 清空列表
Eg:
# 0 init list
L = [1, 2, 3, 4, 5, 7, 6]
# 1 index value
L[1] # --> 2
# 2 step
L[2: 5: 2] # --> [3, 5]
# 3 length
len(L) # --> 6
# 4 in
6 in L # ---> True
8 in L # ---> False
# 5 count
L.count(1) # ---> 1
# 6 index
L.index(2) # ---> 1
# 7 sort
L.sort() # ---> [1, 2, 3, 4, 5, 6, 7] 注意:会改变自己 返回None
# 8 reverse
L.reverse() # 由于第7步改变了自己, 这里变成[7, 6, 5, 4, 3, 2, 1] 会改变自己 返回None
# 9. clear
L.clear() # ---> []
列表特有的一些使用方法
L = [1, 2, 3, 4, 5]
- 列表[索引]=元素:修改指定索引的元素,索引不存在会报错
L[2] = 7
L # ---> [1, 2, 7, 4, 5]
- 列表 . append(元素):在列表的末尾追加元素
L.append(6)
L # ---> [1, 2, 7, 4, 5, 6]
- 列表 . insert(索引,元素):在指定索引位置插入元素,索引不存在时在末尾追加
L.insert(3, 9)
L # ---> [1, 2, 7, 4, 9, 5, 6]
- 列表.pop(索引):
- 删除并返回指定索引的元素,未指定索引时删除最后一项,索引不存在时报错
L.pop(3) # 4, L 变成[1, 2, 7, 9, 5, 6]
L.pop() # 6, L 变成[1, 2, 7, 9, 5]
- 列表 . remove(元素):删除列表中第一个出现的指定元素,查找失败时报错
L.remove(2) # L 变成[1, 7, 9, 5]
- del 列表[索引]: 删除指定索引位置的元素,索引不存在时报错
del L[3] # L 变成[1, 7, 9]
列表l
.extend(列表2
): 将列表2拼接在列表1后
L.extend([8, 9, 10])
L # L 变成[1, 7, 9, 8, 9, 10], 等价于 L = L + [8, 9, 10]
2. 元组
元组(Tuple)
- 元组是一种
有序
且不可更改
的集合,允许重复
的成员 - 元组与列表的类似,不同之处在于
元组元素不可修改
- 元组使用
()
定义,元素之间使用,
分隔。例:(a, b, …) - 元组中只包含一个元素时,可以省略(),只需要在元素后加逗号
init_tuple = 100,
type(init_tuple) # ---> tuple
# ---- 另外写法
init_tuple = (100, ) # 逗号一定要加
- 注意:如果一个非元组类型的数据突然变成元组,检查是不是误加了逗号
集合与元组的通用方法
- 元组[索引]:从元组中取值,获取指定索弓丨的元素
- 元组[开始索引:结束索引:步长]:
- 返回从
开始索引到结束索引-1
的元组,如果设置步长,按步长跳过元素
- len(元组):获取元组的长度
- 元素in元组:判断元素是否在元组中
- 元组.count(元素):返回指定元素在元组中的个数
- 元组.index(元素):返回指定元素在元组中第一次出现的索引,查找失败会报错
元组和列表之间的转换
- list(元组):将元组转换成列表
- tuple(列表): 将列表转换成元组
3. 集合
集合(Set)
- 集合是一种
无序
和无索引
的序列。没有重复的元素
- 集合会
自动删除重复的元素
,一般应用于去重
、交并差运算
场景 - 集合使用{}定义,元素之间使用,分隔。例:{a, b, …}
集合与列表的通用方法
- len(集合):获取集合的长度
- 元素in集合:判断元素是否在集合中
- 集合.clear(): 清空集合
集合特有的使用方法
s = {1, 2, 3}
- 集合.add(元素):将元素添加到集合中
s.add(5) # ---> {1, 2, 3, 5}
集合1
.update(集合2
): 添加新的元素或集合到当前集合中
s.add{4, 5, 6} # ---> {1, 2, 3, 5, 4, 6}
- 集合.remove(元素): 删除指定的元素,元素不存在时报错
s.remove(4) # ----> {1, 2, 3, 5, 6}
集合1&集合2
: 交集,获得由集合1和集合2中都存在的元素组成的新集合
s & {3, 4, 5} # ---> {3, 5}
集合1|集合2
: 并集,获得集合1和集合2中所有元素的新集合
s | {8, 9, 10} # ---> {1, 2, 3, 5, 6, 8, 9, 10}
集合1 - 集合2
: 差集,获得在集合1中存在但是在集合2中不存在的元素集合
s - {9, 10} # ---> {1, 2, 3, 5, 6, 8}
集合和列表之间的转换(也可以和元组进行转换,方式类似)
- list(集合):将集合转换成列表
- set(列表):将列表转换成集合
4. 字典
字典(Dictionary)
- 字典是除列表以外,在Python中最灵活的数据类型
- 字典是一种
无序
,可变
的集合。没有重复的成员 - 映射关系:拥有
键
和对应的值
,称为键值对
- 字典使用
{}
定义,键和值之间使用:
表示对应关系,不同键值对使用,分隔
- 例 : {a: [b, c]}
-
值
可以取任何数据类型,但键
只能使用字符串、数字或元组
- 字 典在Python中通常用于存储
描述一个物体的相关信息
字典与列表类似的用法
d = {a: [1, 2], b: [3, 4]}
- 字典[键]: 通过键获取值, 键不存在时会报错
d[a] # ---> [1, 2]
- len(字典):获取字典键值对的个数
len(d) # ---> 2
- 字典.clear(): 清空字典
d.clear() # {}
字典的特殊使用方法
d = {a: [1, 2], b: [3, 4]}
- 字典.get(键,默认值):通过键获取值,键不存在时返回默认值
d.get(a, 5) # ---> [1, 2]
- 字典[键]=值:键不存在,新増键值对。键存在,修改键对应的值
d[a] = [7, 8] # ---> d {a:[7, 8], b: [3, 4]}
- 字典.keys(): 返回字典所有的键组成的列表
d.keys() # ---> dict_keys([a, b])
- 字典.values() :返回字典所有的值组成的列表
d.values() # ---> dict_values([[7, 8], [3, 4]])
- 字典 . items():返回字典所有的键值对组成的列表
d.items() # ---> dict_items([(a, [7, 8]), (b, [3, 4])])
- del字典[键]: 删除指定键的键值对
del d[a] # ---> d {b: [3, 4]}
- 字典. pop( key) : 同 上
字典1
.update(字典2
): 字典1合并字典2 , 对于在字典1中已经存在的键,使用字典2的值进行数据覆盖
d.update({c: [5, 6]}) # ----> d {b: [3, 4], c: [5, 6]}