元组

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 元组、字典、集合操作总结的更多相关文章

  1. python 深浅拷贝 元组 字典 集合操作

    深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表 ...

  2. python元组-字典-集合及其内置方法(下)

    列表补充 补充方法 清空列表 clear # clear 清空列表 l = [1, 2, 3, 4, 4] print(l.clear()) # clear没有返回值(None) print(l) # ...

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

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

  4. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  5. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  6. python_列表——元组——字典——集合

    列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

  7. 元组/字典/集合内置方法+简单哈希表(day07整理)

    目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用: ...

  8. Python基础-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

  9. day_6深浅拷贝,元组字典集合类型定义和各种操作方法

    首先我们来讲一下深浅拷贝 1:值拷贝,假设一个列表等于L1 再定义一个L2=L1  这样就是值拷贝 L2只是存的L1存列表的地址,所以当L1发生改变,L2也随之改变 2:浅拷贝,L2=L1.copy( ...

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

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

随机推荐

  1. c#静态多态性与动态多态性

    C# 多态性 多态性意味着有多重形式.在面向对象编程范式中,多态性往往表现为"一个接口,多个功能". 多态性可以是静态的或动态的.在静态多态性中,函数的响应是在编译时发生的.在动态 ...

  2. 黑科技抢先尝 - Windows全新终端初体验(附无需编译就能安装的Preview版本及代码Build全过程)

    目录 将Window 10 升级到1903版本 安装好git, 从github上clone代码 安装 VS 2019 和 .NET core 3.0 SDK 重定解决方案目标 设置好编译平台和启动的项 ...

  3. 洛谷 - P2051 - 中国象棋 - 简单dp

    https://www.luogu.org/problemnew/show/P2051 一点都不简单的简单dp. 还是从旧行转移到新行,而不是考虑新行从哪些旧行转移吧. #include<bit ...

  4. CvvImage在高级别的Opencv2.4.11下的配置以及错误解决办法。

    由于高版本的OpenCV2.4.11里取消了CImage(CvvImage),在此我们可以用老的版本替代. 在需要的地方引入 #include "CvvImage.h" 就可以用了 ...

  5. 51nod 1099【贪心】

    思路: 我们可以思考对于仅仅两个元素来说,A,B; 先选A的话是会  A.b+B.a; 先选B的话是会 B.b+A.a; 所以哪个小哪个就放前面; #include <cstdio> #i ...

  6. Unity3D研究院之手游开发中所有特殊的文件夹

    这里列举出手游开发中用到了所有特殊文件夹. 1.Editor Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以.比如目录:/xxx/xxx/Editor  和 /Edi ...

  7. 如何实现一个无边框Form的移动和改变大小(二)

    接着上文:这里写链接内容 我们来说说一个比较复杂的实现, 效果如图: 注意为了能够凸显没有NC(NotClient)区域,我们额外用了3个panel分别放在窗体的左右和下部.用来模拟客户自己的控件. ...

  8. gcd(2018.10.24)

    良心题,暴力枚举即可. 代码: #include<cstdio> #include<cmath> #include<algorithm> using namespa ...

  9. python-函数进阶-动态传参,名称空间,作用域的问题

    一.函数的动态的动态参数 动态参数分为两种:动态接收位置参数.动态接收关键字参数. 1.*args  位置参数动态传参 # 顺序: 位置参数=>*args(arguments) => 默认 ...

  10. JAVA Debug调试技术

    System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()方法不同.后者也是打印出异常,但是它还将显示出更深的调用 ...