元组

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. 7、html的body内标签之图片及表格

    一.image <a href="https://www.baidu.com" target="_blank"> <img src=" ...

  2. python 之enumerate函数

    对于一个seq,得到: (0, seq[0]), (1, seq[1]), (2, seq[2]) list1 = ["这", "是", "一个&qu ...

  3. 15.oauth2 + oidc 实现 server部分

    OAuth主要做授权. OpenIdConnect简历在OAuth2.0基础之上的,相结合 客户端.授权中心.Resource Owner用户本身(资源的拥有者).Resource Server 通过 ...

  4. hexo新建md文档推送到blog出错

    1. git错误提示 $ hexo g INFO Start processing FATAL Something's wrong. Maybe you can find the solution h ...

  5. C# 基础之字段与属性

    1.属性是字段的扩展 2.根据面向对象封装思想,字段最好设为private(私有),这样有利于防止客户端对字段的篡改,从而保证了成员的完整性 3.访问类中私有字段,C#提供了属性,用来对字段进行灵活的 ...

  6. FFT与NTT的模板

    网上相关博客不少,这里给自己留个带点注释的模板,以后要是忘了作提醒用. 以洛谷3803多项式乘法裸题为例. FFT: #include <cstdio> #include <cmat ...

  7. SpringMVC-高级参数绑定

    绑定数组 需求 在商品列表页面选中多个商品,然后删除. 需求分析 此功能要求商品列表页面中的每个商品前有一个checkbook,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品 ...

  8. 解决thymeleaf严格html5校验的方法

    用的是springboot加thyemleaf做静态模板. 然后会有个很烦的东西,就这个静态模板对html的格式非常严格,导致很多框架的格式都用不了,然后这里有个解除的方法: 1.在pom中添加依赖: ...

  9. 实现一个redis连接池

    #*****************jedis连接参数设置*********************#redis服务器ipredis.ip=169.254.130.122#redis服务器端口号red ...

  10. SVN状态图标消失的解决方法

    有些时候我们会发现我们的SVN状态图标会突然消失,所有的文件夹都变成了普通的文件夹格式,这点很不利于我们进行管理. 进入任意一个文件夹,鼠标右键,依次进入TortoiseSVN---Settings ...