Last updated on October 6, 2024 pm
Python基础知识学习-1
教程来自:https://python.iswbm.com/ Python中文指南, 更详细的示例
列表list
list() 创建空表格或[ ] 方括号创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 创建列表有两种方法
第一种方法:先创建空列表实例,再往实例中添加元素
>>> phones = list() >>> phones.append("Apple") >>> phones.append("Huawei") >>> phones.append("Xiaomi") >>> phones ['Apple', 'Huawei', 'Xiaomi']
第二种方法:直接定义列表,并填充元素。推荐第二种 >>> phones = ["Apple", "Huawei", "Xiaomi"] >>> phones ['Apple', 'Huawei', 'Xiaomi']
|
元组tuple
与列表不同,元组是不可变的,或者说元组中的元素值是不可改(增删)的,但是可以对整个元组进行操作: https://www.runoob.com/python/python-tuples.html
使用tuple() 或() 圆括号创建
当你创建只包含一个元素的元组时,要在第一个元素后面加一个逗号
1 2 3
| >>> ctuple = (1,) >>> type(ctuple) <class 'tuple'>
|
但是可以通过 +、* 添加元素,这里理解为重新定义了新的tuple
1 2 3 4 5 6 7 8
| a=(1,2,3) a+=(4,5,6) print(a)
b=a*3 print(b)
|
字典dict
字典(英文名 dict),它是由一系列的键值(key-value)对组合而成的数据结构。字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key: value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。
字典中的每个键都与一个值相关联,其中
- 键,必须是可 hash 的值,如字符串,数值等
- 值,则可以是任意对象
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
第一种方法 :先使用dict()创建空字典实例,再往实例中添加元素
1 2 3
| >>> profile = dict(name="王炳明", age=27, 众号="ython编程时光") >>> profile {'name': '王炳明', 'age': 27, '众号': 'ython编程时光'}
|
第二种方法 :直接使用 {}定义字典,并填充元素。
1 2 3
| >>> profile = {"name": "王炳明", "age": 27, "公众号": "Python编程时光"} >>> profile {'name': '王炳明', 'age': 27, '公众号': 'Python编程时光'}
|
第三种方法 :使用 dict()构造函数可以直接从键值对序列里创建字典。
1 2 3
| >>> info = [('name', '王炳明 '), ('age', 27), ('公众号', 'Python编程时光')] >>> dict(info) {'name': '王炳明 ', 'age': 27, '公众号': 'Python编程时光'}
|
第四种方法:使用字典推导式。
1 2 3
| >>> adict = {x: x**2 for x in (2, 4, 6)} >>> adict {2: 4, 4: 16, 6: 36}
|
重要方法
判断Key 是否存在
使用in 和 not in 来判断
1 2 3 4 5 6
| >>> profile = {"name": "王炳明", "age": 27, "公众号": "Python编程时光"} >>> "name" in profile True >>> >>> "gender" in profile False
|
设置默认值
要给某个 key 设置默认值,最简单的方法
1 2 3 4
| profile = {"name": "王炳明", "age": 27, "公众号": "Python编程时光"}
if "gender" not in profile: profile["gender"] = "male"
|
更简单的办法 .setdefault()
1 2
| profile = {"name": "王炳明", "age": 27, "公众号": "Python编程时光"} profile.setdefault("gender", "male")
|
集合set
集合(英文名 set),它是一个无序的不重复元素序列。
第一种方法:使用 花括号 {} 直接创建,创建的时候,{} 可以包含有重要的元素,但是创建完后,集合会去重,只留第一个。
1 2 3
| >>> aset = {"Apple", "Huawei", "Xiaomi"} >>> aset set(['Huawei', 'Xiaomi', 'Apple'])
|
第二种方法:使用set() 方法进行创建,当set() 函数不接任何参数时,创建的是空集合,如果不创建空集合,可以传入一个列表。
1 2 3 4 5 6 7
| >>> bset = set() # 空集合 >>> bset set([]) >>> >>> cset = set(["Apple", "Huawei", "Xiaomi"]) >>> cset set(['Huawei', 'Apple', 'Xiaomi'])
|
增删查改
增加元素
使用 update 函数,来往集合中添加元素。update 函数后可接集合,列表,元组,字典等。
这是接集合的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| >>> aset = set() >>> aset set([]) >>> >>> # 接集合 >>> aset.update({"Apple"}) >>> aset set(['Apple']) >>> >>> # 接列表 >>> aset.update(["Huawei"]) >>> aset set(['Huawei', 'Apple']) >>> >>> # 接元组 >>> aset.update(("Xiaomi",)) >>> aset set(['Huawei', 'Apple', 'Xiaomi']) >>> >>> # 接字典 >>> aset.update({"VIVO": "xxxx"}) >>> aset set(['Huawei', 'Apple', 'VIVO', 'Xiaomi'])
|
删除元素
使用remove 函数可以删除集合中的元素
1 2 3 4
| >>> aset = {"Apple", "Huawei", "Xiaomi"} >>> aset.remove("Xiaomi") >>> aset set(['Huawei', 'Apple'])
|
使用remove函数,如果对应的元素不存在,是会报错的。
1 2 3 4 5
| >>> aset = {"Apple", "Huawei", "Xiaomi"} >>> aset.remove("VIVO") Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'VIVO'
|
对于这种情况,你可以使用 discard函数,存在元素则移除,不存在也不会报错。
1 2 3 4
| >>> aset = {"Apple", "Huawei", "Xiaomi"} >>> aset.discard("VIVO") >>> aset set(['Huawei', 'Xiaomi', 'Apple'])
|
修改元素
文章开头处,已经说明了集合是无序的,因此集合是 没有索引的。
既然没有索引,修改也无从谈起。
记住:集合只有添加元素、删除元素。
查询元素
同上,没有顺序,也就没有索引,查询也无从谈起。
但是可以查看集合的长度 len()
1 2 3
| >>> aset = {"Apple", "Huawei", "Xiaomi"} >>> len(aset) 3
|
集合运算
合并:union ,合并 时会去掉重复的部分
交集:intersection 函数
如果计算两个集合中不重复的元素集合,可以使用 symmetric_difference 函数
集合判断
判断是否有某元素 in
R语言是 %in%
1 2 3
| >>> aset = {"Apple", "Huawei"} >>> "Apple" in aset True
|
判断两集合是否有相同元素 .isdisjoint
如果两集合有相同元素,则返回 False,如果没有相同元素,则返回 True
1 2 3 4
| >>> aset = {"Apple", "Huawei"} >>> bset = {"Xiaomi", "Huawei"} >>> aset.isdisjoint(bset) False
|
判断是否是子集 .issubset
1 2 3 4
| >>> aset = {"Apple", "Huawei"} >>> bset = {"Huawei"} >>> bset.issubset(aset) True
|