Python 元组、字典、集合操作总结
|
元组 |
a=('a',) |
a=('a','b') |
|
特点 |
有序 |
不可变,不可以修改元组的值,无法为元组增加或者删除元素 |
|
元组的创建 |
a=('a',) |
a=('a','b') |
|
tuple('abcd') |
转化为元组 |
|
|
tuple(i for i in range(10)) |
生成器推导式转化为元组,生成器推导式产生的生成器对象只能遍历一次 |
|
|
g=( i for i in range(10)) next(g) |
单步迭代生成器对象 |
|
|
for i in g: print(i,end='') |
直接迭代生成器对象 |
|
|
a=[1,2,3,4] b=['a','b','c','d'] for I in zip(a,b): print(i) (1,'a') (2,'b') (3,'c') (4,'d') |
Zip接受a和b 作为参数,把对应位置的元素打包成一个个元组,返回zip对象 |
|
|
元组的遍历 |
for I in a: print(i) for I in range(len(a)): print(a[i]) |
|
|
元组的删除 |
del a |
删掉整个元组 |
|
字典 |
{'a':1,'b':2,'c':3} |
|
|
特点 |
键是任意不可变的数据,键不允许重复 |
值可以重复,可以修改的 |
|
无序可变 |
不可以使用 for i in range(len(a)): a[i] 这种方式来遍历 在字典中[]操作符表示读取某键对应的值 |
|
|
字典的创建 |
a={'a':1,'b':2,'c':3} |
|
|
Keys=['a','b','c','d'] Values=[1,2,3,4] dict(zip(keys,values)) |
通过已有的键值对快速创建字典 |
|
|
D=dict(name='Dong',age=37) {'name':'Dong','age'=37} 但是不能写成 Dict(1=2) Dict('name'='Dong') 这样会抛keyword cannot be an experssion的异常 |
||
|
a=dict.fromkeys(['name','age','sex']) |
给定键值,值为空 |
|
|
mca={"a":1, "b":2, "c":3, "d":4} dicts={v:k for k,v in mca.items()} 结果为 {1: 'a', 2: 'b', 3: 'c', 4: 'd'} |
字典推导式 |
|
|
字典元素的读取 |
a['name'] |
若name存在,则返回值,若name不存在,则keyError |
|
a.get('name','Amy') |
获得指定的键对应的值,如果键不存在,则返回指定的值 |
|
|
字典元素的添加与修改 |
a['age']=38 |
若键存在,表示修改键的值,若不存在,表示添加一个新的键值对 |
|
a.update({'a':a,'b':b}) |
将另一个字典中的键值对添加到a中,如果键值有相同的,则以另一个字典中的值为准 |
|
|
字典元素的删除 |
del(a['age']) |
|
|
a.pop('age') |
删除指定键的元素并返回指定键的值 |
|
|
a.popitem() |
随机删除并返回键值对 |
|
|
a.clear() |
删除字典中所有元素 |
|
|
字典的遍历 |
a={'name':'Dong','age'=37} for item in a.items(): print(a) ('age',37) ('name',Dong) |
items() 方法返回键值对 是dict_items类型的 |
|
for I in a: print(i) 'name' 'age' |
啥也不写,就是遍历键 |
|
|
for i in a.keys(): print(i) 'name' 'age' |
keys()方法返回键 是dict_keys类型的 |
|
|
for i in a.values(): print(i) 'Dong' '37' |
values()方法返回值,是dict_values类型的 |
|
|
字典的应用 |
||
|
统计频率 |
d=dict() for ch in z: d[ch]=d.get(ch,0)+1 |
如果ch在字典中已经存在,那么get就会返回频率 ,频率+1,如果不存在,那么get返回0,+1,频率就是1 |
|
集合 |
a={3,5} |
|
|
特点 |
无序可变 |
集合中元素不许重复 |
|
集合的创建 |
X={random.randint(1,500) for i in range(100)} |
集合推导式 |
|
set([1,1]) {1} |
转化为集合,如果原来的数据中存在重复元素,在转换位集合时只保留一个 |
|
|
set() 不是{} 这个是空字典 |
创建一个空集合 |
|
|
集合元素的添加 |
a.add(7) |
往集合中加入重复的元素,是加不进去的,也不会有任何异常 |
|
集合元素的删除 |
a.pop() |
删除任意一个集合中的元素 |
|
a.remove(3) |
从集合中删除3 |
|
|
a.clear() |
从集合中删除所有元素 |
|
|
集合的操作 |
||
|
并集 |
a|b |
a.union(b) |
|
交集 |
a&b |
a.intersection(b) |
|
差集 |
a-b |
a.difference(b) |
|
对称差 |
a^b |
a.symmetric_difference(b) |
|
集合大小(一个 set 比另一个 set 小,只有在第一个 set 是第二个 set 的 subset 时) |
a<b |
|
|
判断是否是子集 |
a.issubset(b) |
|
|
集合的应用 |
||
|
提取序列中所有不重复的元素 |
a=set(list_b) |
|
|
生成不重复的随机数 |
data=set() while True: data.add(random.randint(0,100)) if len(data)==20 break |
|
Python 元组、字典、集合操作总结的更多相关文章
- python 深浅拷贝 元组 字典 集合操作
深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表 ...
- python元组-字典-集合及其内置方法(下)
列表补充 补充方法 清空列表 clear # clear 清空列表 l = [1, 2, 3, 4, 4] print(l.clear()) # clear没有返回值(None) print(l) # ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- python_列表——元组——字典——集合
列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...
- 元组/字典/集合内置方法+简单哈希表(day07整理)
目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用: ...
- Python基础-set集合操作
set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...
- day_6深浅拷贝,元组字典集合类型定义和各种操作方法
首先我们来讲一下深浅拷贝 1:值拷贝,假设一个列表等于L1 再定义一个L2=L1 这样就是值拷贝 L2只是存的L1存列表的地址,所以当L1发生改变,L2也随之改变 2:浅拷贝,L2=L1.copy( ...
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
随机推荐
- Robot FrameWork基础学习(三)
一.关键字(Keyword)根据架构的区分可分为以下三层结构: 底层关键字.公共层关键字.特性关键字. 底层关键字一般与最底层的代码在关系,为上层公共关键字和特性关键字提供接口. 公共层关键字:一般是 ...
- 使用 Multipath TCP 为 iOS 创建备份连接(转)
这篇文章的英文版如下: https://support.apple.com/en-us/HT201373 这里咱们采用苹果手机打开测试网站,发现没有检测到MPTCP,初步猜想可能需要打开什么设置,后续 ...
- [CVE-2017-8464]Microsoft Windows远程命令执行漏洞复现
版权声明:本文为博主的原创文章,未经博主同意不得转载 前言 记录下自己的复现,保留意见 2017年6月13日,微软官方发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快 ...
- 通过HTTP请求WEBAPI的方式
平时工作中长期需要用到通过HTTP调用API进行数据获取以及文件上传下载(C#,JAVA...都会用到).这里获取的是包括网页的所有信息.如果单纯需要某些数据内容.可以自己构造函数甄别抠除出来!一般的 ...
- 小程序地区时间自定义选择器 picker
进入微信公众平台小程序开发文档搜索 picker 点进去后下滑,点击在开发者工具中预览即可
- ADT版本查看,This Android SDK requires Andr...ate ADT to the latest问题
ADT版本查看 Help->About ADT This Android SDK requires Andr...ate ADT to the latest问题 这样的问题很好解决,一个升级AD ...
- C++内存泄漏检测
CRT检测 定位内存泄漏位置 #include "stdafx.h" #ifdef _DEBUG #define DEBUG_NEW new( _NORMAL_BLOCK, __F ...
- c# 添加reference后,Visual Studio 仍然提示无法找到函数, 询问是否添加了含有这个函数的Assembly
1.问题 添加reference后,编译仍然无法通过,测试工程添加这个assembly 就可以编译通过. 对比了这个assembly的 .net 版本,也没问题 由于工程是x64的, 添加的assem ...
- luogu P3600 随机数生成器【dp】
把期望改成方案数最后除一下,设h[i]为最大值恰好是i的方案数,那么要求的就是Σh[i]*i 首先包含其他区间的区间是没有意义的,用单调栈去掉 然后恰好不好求,就改成h[i]表示最大值最大是i的方案数 ...
- 洛谷P4151 [WC2011]最大XOR和路径(线性基)
传送门 不知道线性基是什么东西的可以看看蒟蒻的总结 首先看到异或就想到线性基 我们考虑有一条路径,那么从这条路径走到图中的任意一个环再走回这条路径上,对答案的贡献是这个环的异或和,走到这个环上的路径对 ...