【博学谷学习记录】超强总结,用心分享|人工智能第五课Python中变量的应用场景及常用方法II

一、字典——Python中的查询神器

1、字典(dict)的概念

特点:

① 符号为==大括号==(花括号) => {}

② 数据为==键值对==形式出现 => {key:value},key:键名,value:值,在同一个字典中,key必须是唯一(类似于索引下标)

③ 各个键值对之间用逗号隔开

在字典中,键名除了可以使用字符串的形式,还可以使用数值的形式来进行表示。

字典是Python中的查询神器

定义:

# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
​
# 空字典
dict2 = {}
​
dict3 = dict()

在Python代码中,字典中的key必须使用引号引起来

3、字典的增操作

基本语法:

字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

  注意:列表、字典为可变类型

4、字典的删操作

① del 字典名称[key]:删除指定元素

# 1、定义一个有数据的字典
person = {'name':'张飞', 'age':28, 'gender':'male'}
# 2、删除字典中的元素(如gender)
del person['gender']
# 3、打印字典
print(person)

② clear()方法:清空字典中的所有key

# 1、定义一个有数据的字典
person = {'name':'张飞', 'age':28, 'gender':'male'}
# 2、使用clear()方法清空字典
person.clear()
# 3、打印字典
print(person)

5、字典的改操作

基本语法:

字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

6、字典的查操作

① 查询方法:使用具体的某个key查询数据,如果未找到,则直接报错。

字典序列[key]

② 字典的相关查询方法

get(key, 默认值):根据字典的key获取对应的value值,如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。

keys():以列表返回一个字典所有的键。

values():以列表返回字典中的所有值。

items():以列表返回可遍历的(键, 值) 元组数组。

二、集合——求交集、并集、差集

1、什么是集合

集合(set)是一个无序的不重复元素序列。

① 天生去重

② 无序

2、集合的定义

在Python中,我们可以使用一对花括号{}或者set()方法来定义集合,但是如果你定义的集合是一个空集合,则只能使用set()方法。

3、集合操作的相关方法(增删查)

☆ 集合的增操作

① add()方法:向集合中增加一个元素(单一)

students = set()
students.add('张三')
students.add('李四')
print(students)

② update()方法:向集合中增加序列类型的数据(字符串、列表、元组、字典)

students = set()
list1 = ['刘备', '关羽', '赵云']
students.update(list1)
print(students)
students = set()
students.add('刘德华')
students.add('黎明')
# 使用update新增元素
students.update('蔡徐坤')
# students = {'刘德华', '黎明', '蔡', '徐', '坤'}

☆ 集合的删操作

① remove()方法:删除集合中的指定数据,如果数据不存在则报错。

② discard()方法:删除集合中的指定数据,如果数据不存在也不会报错。

③ pop()方法:随机删除集合中的某个数据,并返回这个数据。

执行原理:系统自动对集合中的数据进行排序,排序后,pop()方法自动删除第一个元素

# 1、定义一个集合
products = {'萝卜', '白菜', '水蜜桃', '奥利奥', '西红柿', '凤梨'}
# 2、使用remove方法删除白菜这个元素
products.remove('白菜')
print(products)
# 3、使用discard方法删除未知元素
products.discard('玉米')
print(products)
# 4、使用pop方法随机删除某个元素
del_product = products.pop()
print(del_product)

☆ 集合中的查操作

① in :判断某个元素是否在集合中,如果在,则返回True,否则返回False

② not in :判断某个元素不在集合中,如果不在,则返回True,否则返回False

③ 集合的遍历操作

for i in 集合:
    print(i)

4、集合中的交集、并集与差集特性

s1 = {'赵云', '关平', '张苞', '貂蝉'}

s2 = {'颜良', '文丑', '董卓', '貂蝉'}

在Python中,我们可以使用&来求两个集合的交集:s1 & s2

在Python中,我们可以使用|来求两个集合的并集:s1 | s2

在Python中,我们可以使用-来求两个集合的差集:s1 - s2或者s2 - s1

三、数据序列中的公共方法

1、什么是公共方法

所谓的公共方法就是支持大部分数据序列。

2、常见公共方法1

 

1:+ 合并(字符串、列表、元组)

2:* 复制(字符串、列表、元组)

3:in与not in方法(字符串、列表、元组、字典、集合)

3、常见公共方法2

 

1:len() 获取字符串、列表、元组、字典、集合的长度:计算容器中元素个数

2:del方法,用于删除序列中指定的元素(根据索引下标):根据索引下标删除指定元素

3:求某个序列中元素的最大值和最小值:max()或者min()

4:enumerate(),把一个序列类型(列表、元组、字符串)的数据构造成key:value结构,然后结合for循环进行遍历

4、序列类型之间的相互转换

list()方法:把某个序列类型的数据转化为列表

# 1、定义元组类型的序列
tuple1 = (10, 20, 30)
print(list(tuple1))

# 2、定义一个集合类型的序列
set1 = {'a', 'b', 'c', 'd'}
print(list(set1))

# 3、定义一个字典
dict1 = {'name':'刘备', 'age':18, 'address':'蜀中'}
print(list(dict1))

tuple()方法:把某个序列类型的数据转化为元组

# 定义一个列表类型的数据
list1 = ['a', 'b', 'c', 'd']
print(tuple(list1))

# 定义一个集合类型的数据
set1 = {10, 20, 30, 40}
print(tuple(set1))

set()方法:将某个序列转换成集合(但是要注意两件事 => ① 集合可以快速完成列表去重 ② 集合不支持下标)

# 定义一个列表类型的数据
list1 = ['a', 'b', 'c', 'd', 'a']
print(set(list1))
# 定义一个元组类型的数据
tuple1 = (10, 20, 30, 40)
print(set(tuple1))

四、列表集合字典推导式

1、什么是推导式

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。 共有三种推导:列表推导式集合推导式字典推导式

[1, 2, 3] 推导式 [1, 4, 9]

2、为什么需要推导式

答:使用推导式可以简化我们的代码。

3、列表推导式

基本语法:

变量名 = [表达式 for 变量 in 列表]
变量名 = [表达式 for 变量 in 列表 if 条件]
变量名 = [表达式 for 变量 in 列表 for 变量 in 列表]

定义0-9之间的列表,列表推导式

list1 = [i for i in range(10)]
print(list1)

执行原理:[i for i in range(10)]

列表推导式先运行表达式右边的内容:
​
当第一次遍历时:i = 0,其得到变量i的结果后,会放入最左侧的变量i中,这个时候列表中就是[0]
当第二次遍历时:i = 1,其得到变量i的结果后,会追加最左侧的变量i中,这个时候列表中就是[0, 1]
...
当最后一次遍历时:i = 9,其得到变量i的结果后,会追加最左侧的变量i中,这个时候列表中就是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

4、列表推导式 + if条件判断

在使用列表推导式时候,我们除了可以使用for循环,其实我们还可以在其遍历的过程中,引入if条件判断。

变量 = [表达式 for 临时变量 in 序列 if 条件判断]
​
等价于
​
for 临时变量 in 序列:
    if 条件判断

案例:生成0-9之间的偶数(i%2 == 0)序列

list1 = [i for i in range(10) if i % 2 == 0]
print(list1)

5、for循环嵌套列表推导式

for 临时变量 in range(n):
    for 临时变量 in range(n):

基本语法:

变量 = [表达式 for 临时变量 in 序列 for 临时变量 in 序列]

列表推导式:

list1 = [(i, j) for i in range(1, 3) for j in range(0, 3)]
print(list1)

6、字典推导式

有如下两个列表,如何快速合并为一个字典?

list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'male']
​
person = {'name':'Tom', 'age':20, 'gender':'male'}

可以使用字典推导式

基本语法:

① 字典推导式列表推导式思想的延续,语法差不多,只不过产生的是字典而已。

② 字典推导式格式:

变量 = {key:value for key,value in 序列}

字典推导式作用:快速合并列表为字典或提取字典中目标数据。

7、集合推导式

集合推导式跟列表推导式非常相似,唯一区别在于用 { } 代替 [ ]。集合的最大特点就是去重

需求:创建一个集合,数据为下方列表的2次方。

list1 = [1, 1, 2]
set1 = {1, 4}

推导式

list1 = [1, 1, 2]
set1 = {i**2 for i in list1}
print(set1)

本周笔记分享就到这里啦,下周介绍函数和拆包!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值