基本概念

列表

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

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

字典

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

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

字典的特点

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

集合

集合(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)
  • 高级用法
  1. 列表: filter函数和列表解析
  2. 字典:字典解析
  3. 集合:集合解析

案例实战

列表相关

要求筛选出列表中大于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进阶---列表、字典、集合相关操作的更多相关文章

  1. day07-Python运维开发基础(深/浅拷贝、字典/集合/相关操作)

    1. 深拷贝与浅拷贝 # ### 深拷贝 和 浅拷贝 """ a = 7 b = a a = 8 print(b) lst1 = [1,2,3] lst2 = lst1 ...

  2. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

  3. Python:关于字典的相关操作

    >>> people = {"Tom":170, "Jack":175, "Kite":160, "White& ...

  4. 初识python 字符串 列表 字典相关操作

    python基础(一): 运算符: 算术运算: 除了基本的+ - * / 以外,还需要知道 :  // 为取整除 返回的市商的整数部分 例如: 9 // 2  ---> 4  , 9.0 //  ...

  5. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  6. Python 基础之集合相关操作与函数和字典相关函数

    一:集合相关操作与相关函数 1.集合相关操作(交叉并补) (1)intersection() 交集 set1 = {"one","two","thre ...

  7. python 集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  8. python集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  9. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  10. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

随机推荐

  1. CRAP-API——如何在Linux服务器部署CRAP-API教程

    前言 之前一直用的eolinker的免费版,但是人数有限,所以想找个免费开源的API管理平台,然后就选择了CRAP-API. 步骤 部署环境 LNMT部署 我的环境是之前部署的是LNMP,后面又增加的 ...

  2. vector rIterator

    #include<vector> #include<iostream> using namespace std; void main() { vector<int> ...

  3. Hive元数据配置到MySql

    1 驱动拷贝 1.在/opt/software/mysql-libs目录下解压mysql-connector-java-5.1.27.tar.gz驱动包 [root@hadoop102 mysql-l ...

  4. redux沉思录:基于flux、状态管理、函数式编程的前端状态管理框架

    基于flux和reduce的通信和状态管理机制; 和数据库管理系统一样,redux是一个状态管理系统(或机制). const store = createStore( reducer, compose ...

  5. windows10家庭版升级专业版/企业版

    以防万一,还是把Windows10家庭版的密钥保存下来. 一.保留原密钥 1. Win+R,输入regedit 2. 进入目录 HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...

  6. JavaScript基础08——DOM

    DOM的概念 DOM是document Object Model的缩写,简称文档对象模型.他给文档提供了一种结构化的表示方式,可以改变文档的内容和呈现方式 所谓的DOM是以家族的形式描述HTML.父子 ...

  7. rushjs来自微软的单体仓库管理工具

    rushjs 是来自微软的单体仓库管理工具 ,与lerna 类似但是使用上稍显复杂 安装 npm install -g @microsoft/rush   简单使用 一个传统的基于npm 的处理 ~$ ...

  8. Vuejs简介

    一.网站交互方式 ①传统的开发方式:PHP 中,页面和服务端糅合在一起,在这种项目中服务端占比更重,因为绝大多数都服务端技术,绝大多数网站都是这样的方式 ②前后端分离方式:服务端只处理数据(不关心页面 ...

  9. Problem 3 基站建设 (station.cpp)———2019.10.6

    在此郑重的感激wxyww大佬 wxyww tql [题目描述]小 Z 的爸爸是一位通信工程师,他所在的通信公司最近接到了一个新的通信工程建设任务,他们需要在 C 城建设一批新的基站.C 城的城市规划做 ...

  10. 【JZOJ6230】【20190625】梦批糼

    题目 一个$n\times m \times l $的立方体,有一些位置有障碍 一次操作会随机选择一个立方体,共有\(w\)次操作 询问所有操作都不选到障碍点,被选到至少一次的点的期望 $n ,m,l ...