- 容器:
- 1.列表(list)
- 1.1列表定义
- 1.2 列表中元素的访问方式
- 1.3 对列表中元素的常见操作
- 1.3.1 操作总结
- 1.3.2 操作展示及注意事项
- 2.集合(set)
- 2.1 集合的定义
- 2.2集合中的常见操作
- 2.2.1操作总结
- 2.2.2 操作展示及注意事项
- 3.元组(tuple)
- 3.1 元组的定义
- 3.2 元组中的常见操作
- 3.2.1 常见操作
- 3.2.2 操作展示及注意事项
- 4. 字典(dict)
- 4.1 python 中字典的定义
- 4.2 python字典中常见的操作
- 4.2.1 操作总结
- 4.2.2 操作展示及注意事项
python中的容器是指:存放多个元素的一种数据类型,它弥补了变量只能存储单个值得缺陷,python中的容器是:列表、元组、集合、字典等。
1.列表(list) 1.1列表定义列表是一个有序且可更改的集合,在python中列表用方括号括起来。列表是基于链表的双向链表实现的。定义的方式有两种,一是根据弱数据类型的特点进行定义的、第二种是通过全局函数list()定义的。
1.2 列表中元素的访问方式列表中的元素访问方式是通过下标进行访问的,需要注意的是在列表中,从左往右,由0开始计数一一对应下标;下标也可以为负数,当下标为负数时则表示从右往左,第一个下标记为-1,往左依次减小。
访问单个元素:
正方向访问:
ls = [1,2,3,4,5] print(ls[1])
结果为:
2
负方向访问:
ls = [1,2,3,4,5] print(ls[-2])
结果为:
4
区间访问:
ls = [1,2,3,4,5] print(ls[1:3])
结果为:
[2, 3]
注: 区间也可以用负数表示
1.3 对列表中元素的常见操作 1.3.1 操作总结| 操作 | 描述 |
|---|---|
| len() | 计算容器的长度 |
| append | 在列表的末尾添加元素一个 |
| insert | 向指定的位置添加一个元素 |
| sort | 列表排序(默认从小到大的顺序,类型是int),字母按照ASII的值进行排序,需要注意的是元素类型必须一致 |
| index | 查找指定元素第一次出现在列表中的位置,给出的值是下标 |
| reverse | 颠倒列表的顺序 |
| count | 统计指定元素在列表中出现的次数 |
| remove | 删除列表中指定的元素,(注:当列表中的指定元素多次出现,则将删除列表中第一次出现的指定元素,当列表中没有指定的元素的时候将会抛出错误) |
| clear | 清除列表中的所有元素 |
| copy | 拷贝、复制(注:拷贝不等价于“=”是在堆内存中进行的拷贝) |
| extend | 合并列表 |
| pop | 删除列表中的最后一个元素 |
len: 计算列表长度,返回的是列表中容器的个数
代码:
ls = [1,2,3,4,5] print(len(ls))
结果:
5
append: 在列表的末尾添加一个元素
代码:
ls = [1,2,3,4,5] ls.append(8) print(ls)
结果:
[1, 2, 3, 4, 5, 8]
insert: 向指定的位置添加元素
格式: 列表.insert(添加的位置,需要添加的元素)
代码:
ls = [1,2,3,4,5] ls.insert(1,5) print(ls)
结果:
[1, 5, 2, 3, 4, 5]
sort: 列表排序。
注: 默认的是从小到大的顺序,当类型是int()时,按照数字大小进行排序;如果是字母时,按照对应的ASII码进行排序;列表中的元素类型必须一致
代码:
ls = [1,5,3,2,4] ls.sort() print(ls)
结果:
[1, 2, 3, 4, 5]
index: 查找指定元素在列表中第次出现的位置
注: 给出的是下标,当列表中没有指定的元素的时候会给出提示。
代码:(列表中有指定的元素)
ls = [1,5,3,2,4] print(ls.index(5))
结果:
1
代码:(列表中没有指定的元素)
ls = [1,5,3,2,4] print(ls.index(6))
结果:
ValueError: 6 is not in list
reverse: 颠倒列表顺序
代码:
ls = [1,5,3,2,4] ls.reverse() print(ls)
结果:
[4, 2, 3, 5, 1]
count: 统计指定元素在列表中出现的次数,返回的是出现元素的个数。
代码
ls = [1,1,3,2,4,1] print(ls.count(1))
结果:
3
remove: 删除列表中指定的元素。
注: 当列表中的指定元素多次出现,只会删除列表中第一次出现的元素,当列表中没有指定的元素则会抛出错误。
代码:
ls = [1,1,3,2,4,1] ls.remove(3) print(ls)
结果:
[1, 1, 2, 4, 1]
当指定元素在列表中多次出现:
ls = [1,1,3,2,4,1] ls.remove(1) print(ls)
结果:
[1, 3, 2, 4, 1]
当列表中没有指定的元素
ls = [1,1,3,2,4,1] ls.remove(5) print(ls)
结果:
ValueError: list.remove(x): x not in list
clear: 清除列表中的所有元素
代码:
ls = [1,1,3,2,4,1] ls.clear() print(ls)
结果:
[]
copy: 拷贝、复制。
注: 拷贝不等价于“=”,拷贝是在堆内存中进行拷贝。
代码:
ls = [1,1,3,2,4,1] ls1 = ls.copy() print(ls) print(ls1)
结果:
[1, 1, 3, 2, 4, 1] [1, 1, 3, 2, 4, 1]
extend: 合并列表。
代码:
ls = [1,1,3,2,4,1] ls1 = [1,2,4,9,7,6] ls.extend(ls1) print(ls)
结果:
[1, 1, 3, 2, 4, 1, 1, 2, 4, 9, 7, 6]
pop: 删除列表中最后一个元素。
注: 当“pop()”括号中没有数字时,默认删除列表中最后一个元素;有数字时,指的是删除列表中对应下标的元素。
代码:(无数字时)
ls = [1,1,3,2,4,1,4,9] ls.pop() print(ls)
结果:
[1, 1, 3, 2, 4, 1, 4]
代码:(有数字时)
ls = [1,1,3,2,4,1,4,9] ls.pop(3) print(ls)
结果:
[1, 1, 3, 4, 1, 4, 9]2.集合(set) 2.1 集合的定义
集合是无序和无索引的集合,集合的底层是基于哈希结构实现。特点是无序的,要用花括号括起来,所以无法气确定项目的显示顺序;当集合中有重复的元素,只会保留第一个元素,后面的元素会省略。
2.2集合中的常见操作 2.2.1操作总结| 操作 | 描述 |
|---|---|
| clear | 删除集合中的所有元素 |
| copy | 拷贝、复制 |
| pop | 从集合中删除第一个元素 |
| remove | 删除集合中指定的元素 |
| add | 向集合中添加元素(注:如果集合中的元素与添加的元素重复,不会抛出错误,而且不会添加) |
| difference | 差集(注:差集是一种集合运算,记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A、B,把集合{x∣x∈A,且x∉B}叫做A与B的差集。) |
| intersection | 两个集合的交集 |
| union | 两个集合的并集 |
| update | 此集合与其他集合的并集来更新集合 |
| discard | 删除集合中的指定的元素 |
clear: 删除集合中的所有元素
代码:
a = {1,5,6,3,4,7,9,6}
a.clear()
print(a)
结果:
set()
copy: 拷贝复制
代码:
a = {1,5,6,3,4,7,9,6}
a1 = a.copy()
print(a1)
print(a)
结果:
{1, 3, 4, 5, 6, 7, 9}
{1, 3, 4, 5, 6, 7, 9}
pop: 删除集合中的第一个元素
注: 括号里不能放集合中的元素,它只能删除集合中的第一个元素。
代码:
a = {1,5,6,3,4,7,9,6}
a.pop()
print(a)
结果:
{3, 4, 5, 6, 7, 9}
remove: 删除集合中一个指定的元素。
注: 当指定的元素在集合中有重复则将所有指定的元素全部删除。
代码:
a = {1,5,6,3,4,7,9,6}
a.remove(5)
print(a)
结果:
{1, 3, 4, 6, 7, 9}
add: 向集合中添加元素
注: 如果集合中的元素与添加元素重复相同,则不会添加,并且不会抛出错误。
代码:(与原有集合中的元素不重复)
a = {1,5,6,3,4,7,9,6}
a.add(8)
print(a)
结果:
{1, 3, 4, 5, 6, 7, 8, 9}
difference: 差集
注: 差集是一种集合运算,记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A、B,把集合{x∣x∈A,且x∉B}叫做A与B的差集。
代码:
a = {5,7,9,6}
a1 = {1,5,6,3}
b = a.difference(a1)
print(b)
结果:
{9, 7}
intersection: 两个集合的交集
a = {5,7,9,6}
a1 = {1,5,6,3,}
b = a.intersection(a1)
print(b)
结果:
{5, 6}
union: l两个集合的并集。
代码:
a = {5,7,9,6}
a1 = {1,5,6,3}
b = a.union(a1)
print(b)
结果:
{1, 3, 5, 6, 7, 9}
update: 此集合与其他集合的并集来更新集合,效果与“union”效果差不多,只是写法不同。
代码:
a = {5,7,9,6}
a1 = {1,5,6,3}
a.update(a1)
print(a)
结果:
{1, 3, 5, 6, 7, 9}
discard: 删除集合中的指定的元素,与“remove”用法效果一样。
注: 当指定的元素在集合中有重复则将所有指定的元素全部删除。
代码:
a = {5,7,9,6,1,5,6,3}
a.discard(5)
print(a)
结果:
{1, 3, 6, 7, 9}
3.元组(tuple)
3.1 元组的定义
元组是有序且不可更改的集合,用圆括号括起来,因为有序,所以可以用下标获取元素。
特点:元组是一个不可变得类型,元组中的元素类型一旦确定下来,就不能再改变。
| 操作 | 描述 |
|---|---|
| count | 统计元组中指定元素出现的次数 |
| index | 查找指定元素在元组中第一次出现的位置,给出的是元素的下标 |
可以通过下标进行元素读取(可以正方向访问也可以反方向访问,还可以进行区间访问)
代码:
a = (5,7,9,6,1,5,6,3) # 正访问 print(a[2]) # 反访问 print(a[-2]) # 区间访问 print(a[2:5])
结果:
9 6 (9, 6, 1)
count: 统计元组中指定元素在元组中出现的次数
代码:
a = (5,7,9,6,1,5,6,3) print(a.count(5))
结果:
2
index: 查找指定元素在元组中第一次出现的位置
注: 给出的是下标
代码:
a = (5,7,9,6,1,5,6,3) print(a.index(6))
结果:
34. 字典(dict) 4.1 python 中字典的定义
字典是一个无序的、可改变的、有索引的集合,用花括号编写,并且拥有键和值,也会自动排序,重复的只保留一个。
通过key去访问value,如果没有key将会抛出错误;修改value也是用key去修改。
| 操作 | 描述 |
|---|---|
| clear | 删除字典中的所有元素 |
| copy | 拷贝、复制 |
| get(key) | 通过键去获取值,如果没有key将不会有任何操作,其返回值是None |
| keys | 获取字典中的所有的键 |
| values | 获取字典中的所有值 |
| setdefault | 获取字典中指定键的值,如果字典中没有这个指定的键,将会将这个键的值插入到最后,并且这个键的值为None |
| items | 返回所有键值对的元组的列表 |
| pop(key) | 删除指定键及其对应的值,如果字典中没有这个指定的键将会抛出错误】 |
| popitem | 移除键值对,顺序是从后往前进行移除 |
clear: 删除字典中的所有元素
代码:
a = {"name":"zhangsan","num":123456,"age":18}
a.clear()
print(a)
结果:
set()
copy: 拷贝、复制
代码:
a = {"name":"zhangsan","num":123456,"age":18}
a1 = a.copy()
print(a1)
结果:
{'name': 'zhangsan', 'num': 123456, 'age': 18}
get: 通过钥匙(key,键)去获取value(值),如果没有该钥匙,不会抛出异常,返回值为“None”
a = {"name":"zhangsan","num":123456,"age":18}
print(a.get("name"))
print(a.get("pass_word"))
结果:
zhangsan None
keys: 获取字典中的所有键(key)
a = {"name":"zhangsan","num":123456,"age":18}
print(a.keys())
结果:
dict_keys(['name', 'num', 'age'])
values: 获取字典中的所有的值
代码:
a = {"name":"zhangsan","num":123456,"age":18}
print(a.values())
结果:
dict_values(['zhangsan', 123456, 18])
**setdefault:**获取字典中指定键的值
注: 如果字典中没有这个指定的键,将会将这个键添加到字典最后,值设置为“None”
代码:
a = {"name":"zhangsan","num":123456,"age":18}
# 字典中有指定的键
print(a.setdefault("name"))
# 字典中没有指定的键
print(a.setdefault("pass_word"))
print(a)
结果:
zhangsan
None
{'name': 'zhangsan', 'num': 123456, 'age': 18, 'pass_word': None}
items: 返回所有的键值对
代码:
a = {"name":"zhangsan","num":123456,"age":18}
print(a.items())
结果:
dict_items([('name', 'zhangsan'), ('num', 123456), ('age', 18)])
pop: 通过键删除指定键及其对应的值,如果没有指指定的键会抛出异常
代码:
a = {"name":"zhangsan","num":123456,"age":18}
a.pop("name")
print(a)
结果:
{'num': 123456, 'age': 18}
popitem: 移除键值对,顺序是从后往前进行移除
代码:
a = {"name":"zhangsan","num":123456,"age":18}
a.popitem()
print(a)
结果:
{'name': 'zhangsan', 'num': 123456}
通过键去改变值(value):
代码:
a = {"name":"zhangsan","num":123456,"age":18}
a["name"] = "lisi"
print(a)
结果:
{'name': 'lisi', 'num': 123456, 'age': 18}
遍历字典:
代码1:
a = {"name":"zhangsan","num":123456,"age":18}
for i in a:
print(i,a.get(i))
结果:
name zhangsan num 123456 age 18
代码2:
a = {"name":"zhangsan","num":123456,"age":18}
for i in a.keys():
print(i,a[i])
结果:
name zhangsan num 123456 age 18
代码3:
a = {"name":"zhangsan","num":123456,"age":18}
for i,n in a.items():
print(i,n)
结果:
name zhangsan num 123456 age 18



