python进阶---列表、字典、集合相关操作
基本概念
列表
序列是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进阶---列表、字典、集合相关操作的更多相关文章
- day07-Python运维开发基础(深/浅拷贝、字典/集合/相关操作)
1. 深拷贝与浅拷贝 # ### 深拷贝 和 浅拷贝 """ a = 7 b = a a = 8 print(b) lst1 = [1,2,3] lst2 = lst1 ...
- Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作
1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...
- Python:关于字典的相关操作
>>> people = {"Tom":170, "Jack":175, "Kite":160, "White& ...
- 初识python 字符串 列表 字典相关操作
python基础(一): 运算符: 算术运算: 除了基本的+ - * / 以外,还需要知道 : // 为取整除 返回的市商的整数部分 例如: 9 // 2 ---> 4 , 9.0 // ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python 基础之集合相关操作与函数和字典相关函数
一:集合相关操作与相关函数 1.集合相关操作(交叉并补) (1)intersection() 交集 set1 = {"one","two","thre ...
- python 集合相关操作
集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...
- python集合相关操作
集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
随机推荐
- vim 常用命令(记录)
很好的vim讲解:https://blog.csdn.net/weixin_37657720/article/details/80645991 命令模式:默认模式.输入ctrl+c, 输入:,转换为命 ...
- TestAbstract
public class TestAbstract { public static void main(String[] args) { System.out.println("Hello ...
- 2019年12月份关于Android Studio 需要了解的知识总结
因为期末项目答辩的原因,我和我的小组成员一起写了个作品展示app 就是用AndroidStudio写的 具体功能呢还加上了云服务器,bmob,等等 我是不知道那个云服务器要怎么配置啊,也不会用,都是 ...
- Opentrains 1519 G——最小圆覆盖
题目 给出 $n$ 个定义在区间 $[0, 1]$ 上的一次函数 $f_i(x) = a_ix+b_i$,定义两个函数的距离为: $$dist(f,g) = \left(\max_{0\leq i\l ...
- Educational Codeforces Round 47 (Rated for Div. 2) G. Allowed Letters
把原字符看成 $X$,每个位置看成 $Y$,每种字符向每个能去的位置连边,就成了一个二分图完美匹配的问题.现要得到字典序最小,那么就枚举每一位要放什么,然后看放完这种字符,剩下的字符的个数和后面能不能 ...
- 22-1 web传输视频 Opencv+usb摄像头 树莓派+Flask实现视频流媒体WEB服务器
第一篇 讲解原理 https://blog.miguelgrinberg.com/post/video-streaming-with-flask 第二篇 加入多线程可以直接用 https://gith ...
- Python -- 正则表达式 regular expression
正则表达式(regular expression) 根据其英文翻译,re模块 作用:用来匹配字符串. 在Python中,正则表达式是特殊的字符序列,检查一个字符串是否与某种模式匹配. 设计思想:用一 ...
- luoguP3964 [TJOI2013]松鼠聚会
链接 luogu 思路 切比雪夫距离有max,不好优化. 但是我们能转化成曼哈顿距离,只需要 \((x,y)变成(\frac{x+y}{2},\frac{x-y}{2})\) 相反的曼哈顿距离转切比雪 ...
- Cogs 513. 八(容斥原理)
八 ★☆ 输入文件:eight.in 输出文件:eight.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 八是个很有趣的数字啊.八=发,八八=爸爸,88=拜拜.当然最有趣的 ...
- vi 调到第一行和最后一行
gg 跳到文件第一行Shift + g 跳到文件最后一行 chmod 777 abc.txt