python爬虫基础----元组高级、字典高级和切片(第八天)

本文介绍了Python中元组的不可变性质、访问和修改技巧,字典的高级用法如元素操作、遍历和方法,以及切片的基础和应用,强调了它们在性能优化和数据管理中的优势。
摘要由CSDN通过智能技术生成

🎈🎈作者主页: 喔的嘛呀🎈🎈
🎈🎈所属专栏:python爬虫学习🎈🎈
✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 

小伙伴大家好!今天我们学习的内容是元组高级、字典高级和切片的相关知识。

目录

一、元组

访问元组

修改元组

定义只有一个数据的元组

删除元组

元组切片

使用元组的优势

二、字典高级

查看元素

修改元素

添加元素

删除元素

遍历字典

字典方法

字典的优势

三、切片

切片基础


一、元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 (),而列表使用方括号 []

访问元组

可以使用索引来访问元组中的元素,索引从0开始,例如:

tuple_example = ('apple', 'banana', 'cherry')
print(tuple_example[1])  # 输出:banana

修改元组

Python 中不允许直接修改元组的数据,包括不能删除其中的元素。如果需要修改元组,可以先将其转换为列表进行修改,然后再转换回元组,例如:

tuple_example = ('apple', 'banana', 'cherry')
list_example = list(tuple_example)
list_example[1] = 'orange'
tuple_modified = tuple(list_example)
print(tuple_modified)  # 输出:('apple', 'orange', 'cherry')

定义只有一个数据的元组

定义只有一个元素的元组时,需要在元素后面添加一个逗号 ,,否则 Python 将会把它误解为普通的数据类型。例如:

single_tuple = ('apple',)
print(single_tuple)  # 输出:('apple',)

删除元组

由于元组的不可变性,无法直接删除元组中的元素。但可以删除整个元组,例如:

tuple_example = ('apple', 'banana', 'cherry')
del tuple_example

元组切片

切片是对元组进行截取其中一部分的操作。切片的语法为 [起始:结束:步长],例如:

tuple_example = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j')
print(tuple_example[2:5])  # 输出:('c', 'd', 'e')

使用元组的优势

  • 性能优化:元组比列表更加轻量,因为元组的大小和元素不可变性在创建后就确定了,所以在内存上的开销更小。
  • 安全性:元组中的数据不可变,可以避免数据被意外修改的情况,适用于存储重要且不变的数据。
  • 作为字典的键:由于元组是不可变的,所以可以作为字典的键使用,而列表则不行。

元组在需要存储不可变数据或者需要确保数据不被修改的场景下非常有用

二、字典高级

当涉及到键值对的存储和管理时,Python 中的字典(Dictionary)是一个非常强大和灵活的工具。它允许您以键-值对的形式存储数据,并能够高效地对数据进行访问和操作。下面是一些关于字典高级内容的详细全面介绍,带有代码示例:

创建字典

# 创建一个空字典
empty_dict = {}

# 创建一个包含键值对的字典
person = {
    'name': 'Alice',
    'age': 30,
    'city': 'New York'
}

# 使用 dict() 函数创建字典
new_dict = dict(name='Bob', age=25, city='San Francisco')

查看元素

除了使用键来查找数据外,还可以使用 get 方法来获取数据。如果键不存在,get 方法将返回 None,而不会引发异常。

info = {'name': '班长', 'age': 18}
print(info['age'])  # 获取年龄
print(info.get('sex'))  # 获取不存在的 key,返回 None
print(info.get('sex', '男'))  # 获取不存在的 key,提供默认值

修改元素

字典中的每个元素的数据是可以修改的,只要通过键找到对应的值即可修改。

info = {'name': '班长', 'id': 100}
print('修改之前的字典为 %s:' % info)
info['id'] = 200  # 修改已存在的键值对
print('修改之后的字典为 %s:' % info)

添加元素

如果对不存在的键赋值,将会新增这个元素。

info = {'name': '班长'}
print('添加之前的字典为: %s' % info)
info['id'] = 100  # 添加新的键值对
print('添加之后的字典为: %s' % info)

删除元素

可以通过 del 关键字删除指定的元素,或使用 clear() 方法清空整个字典。

info = {'name': '班长', 'id': 100}
print('删除前, %s' % info)
del info['name']  # 删除指定的键值对
print('删除后, %s' % info)

遍历字典

可以使用 for 循环遍历字典的键、值或者键值对。

# 遍历键
for key in info.keys():
    print(key)

# 遍历值
for value in info.values():
    print(value)

# 遍历键值对
for key, value in info.items():
    print(key, value)

字典方法

创建一个空字典

# 创建一个空字典
empty_dict = {}

# 创建一个包含键值对的字典
person = {
    'name': 'Alice',
    'age': 30,
    'city': 'New York'
}

# 使用 dict() 函数创建字典
new_dict = dict(name='Bob', age=25, city='San Francisco')

# 获取所有键
keys = person.keys()
print(keys)  # 输出:dict_keys(['name', 'age', 'city', 'gender'])

# 获取所有值
values = person.values()
print(values)  # 输出:dict_values(['Alice', 35, 'New York', 'Female'])

# 获取所有键值对
items = person.items()
print(items)  # 输出:dict_items([('name', 'Alice'), ('age', 35), ('city', 'New York'), ('gender', 'Female')])

# 删除键值对
del person['city']
print(person)  # 输出:{'name': 'Alice', 'age': 35, 'gender': 'Female'}

# 清空字典
person.clear()
print(person)  # 输出:{}

字典的优势

  • 快速查找:字典使用哈希表实现,可以快速查找键对应的值。
  • 灵活性:字典中的值可以是任意类型,包括列表、字典等。
  • 可变性:字典中的值可以修改,可以根据需求动态地添加、删除键值对。

字典在需要存储键值对的数据,并且需要根据键快速查找对应的值时非常有用。

三、切片

切片(Slice)是 Python 中一种非常强大和灵活的功能,它允许您从序列(如列表、元组、字符串等)中获取子序列。切片的语法是 [起始:结束:步长],其中起始表示起始索引(包含),结束表示结束索引(不包含),步长表示每次取值的间隔。下面是关于切片的详细全面介绍,带有代码示例:

切片基础

# 创建一个列表
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 使用切片获取子序列
subset = numbers[2:7]  # 从索引 2 开始,到索引 7(不包含)结束
print(subset)  # 输出:[2, 3, 4, 5, 6]

# 可以省略起始和结束索引
subset = numbers[:5]  # 从开头到索引 5(不包含)结束
print(subset)  # 输出:[0, 1, 2, 3, 4]

subset = numbers[5:]  # 从索引 5 开始到末尾
print(subset)  # 输出:[5, 6, 7, 8, 9]

# 使用负数索引从末尾开始切片
subset = numbers[-3:]  # 从倒数第三个元素到末尾
print(subset)  # 输出:[7, 8, 9]

# 步长不为1时的切片
subset = numbers[1:8:2]  # 从索引 1 开始,每隔一个元素取值,直到索引 8(不包含)结束
print(subset)  # 输出:[1, 3, 5, 7]

# 可以使用负数步长反向切片
subset = numbers[::-1]  # 反向取值,相当于将列表反转
print(subset)  # 输出:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

切片应用

# 字符串切片
s = 'Hello, World!'
print(s[2:7])  # 输出:llo, 

# 列表切片
colors = ['red', 'green', 'blue', 'yellow', 'purple']
subset = colors[1:4]
print(subset)  # 输出:['green', 'blue', 'yellow']

# 元组切片
t = (1, 2, 3, 4, 5)
subset = t[2:]
print(subset)  # 输出:(3, 4, 5)

切片是 Python 中一个非常强大且常用的功能,它可以帮助您快速、方便地获取序列中的子序列,使代码更加简洁和易读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喔的嘛呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值