python进阶---列表、字典、集合相关操作

2023-04-12编程技术205994

基本概念

列表

序列是python中一个基本的数据结构,每个元素都有一个索引index

操作

# 创建列表
list = []
# 修改列表
list[2] = 2001
# 删除列表
del list[2]

字典

字典是另一种可变容器模型,且可存储任意类型对象

# 定义字典
d = {key1 : value1, key2 : value2 }
# 访问字典的值
d['key1'] # 修改字典的值
d['key1'] = a

字典的特点

    不允许同一个键出现两次
    键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

集合

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

最大的特点无序的 没有重复元素

# 创建集合
parame = {value01,value02,...}
或者
set(value) # 添加元素
s.add( x )
# 移除元素
s.remove( x )

如何在列表、字典、集合中根据条件筛选数据

基本做法

迭代

1 data = [3, 9, -1, 10, 20, -2]
2 res = []
3 for x in data:
4 if x >= 0:
5 res.append(x)

高级用法

    列表: filter函数和列表解析
    字典:字典解析
    集合:集合解析

案例实战

列表相关

要求筛选出列表中大于0的元素,返回新的列表

# 利用filter函数
from random import randint
data = [randint(-10, 10) for i in range(10)]
list(filter(lambda x: x >= 0, data))
->输出 [8, 7, 2, 9, 7] # 利用列表解析
[x for x in data if x>-0] ->输出 [8, 7, 2, 9, 7]

两种方式相比,列表解析的时间复杂度更好,运行速度快

字典相关

构造一个班级20人,字典的key和value分别是学号和成绩,根据不同条件筛选

# 构造字典
from random import randint
d = {x: randint(60, 100) for x in range(1, 21) }
# 字典解析
# 筛选出成绩大于90的学生
{k: v for k, v in d.items() if v>90}

集合相关

from random import randint
data = [randint(-10, 10) for i in range(10)]
s = set(data)
{x for x in s if x % 3 = 0}

ps:filter函数在python2和python3中的不同

# python2
filter(lambda x: x >= 0, data)
输出:[8, 7, 2, 9, 7]
# python3
filter(lambda x: x >= 0, data)
输出: <filter at 0x105f955c0>返回一个过滤器对象

在python3中要返回列表,需要用list()做强制转换

list(filter(lambda x: x >= 0, data))

python进阶---列表、字典、集合相关操作的相关教程结束。

本文地址:https://www.ufcn.cn/tutorials/2454061.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!