元组

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. checkbox的几种遍历方法

    html代码如下: <div> <input type="checkbox" name="ckb" value="1" / ...

  2. 20个Flutter实例视频教程-第02节: 底部导航栏制作-2

    视频地址: https://www.bilibili.com/video/av39709290?p=2 博客地址: https://jspang.com/post/flutterDemo.html#t ...

  3. Flutter实战视频-移动电商-51.购物车_Provide中添加商品

    51.购物车_Provide中添加商品 新加provide的cart.dart页面 引入三个文件.开始写provide类.provide需要用with 进行混入 从prefs里面获取到数据,判断有没有 ...

  4. 一道关于chm设计ctf钓鱼的一些思考

    版权声明:本文为博主的原创文章,未经博主同意不得转载 题目:flag就是文件指向的地址 文件: 作为一名web狗的出题人,这道ctf有点意思不是在于因为它难,而是相对于一些代码审计以及一些杂项题来说, ...

  5. PorterDuffXfermode 图像混合技术在漫画APP中的应用

    此文已由作者游葳授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 写在开头 随着应用开发的深入,视觉同学在完成了页面的基本设计后,再也按耐不住心中的寂寞,开始对各种细节不满意, ...

  6. 一个例子读懂 JS 异步编程: Callback / Promise / Generator / Async

    JS异步编程实践理解 回顾JS异步编程方法的发展,主要有以下几种方式: Callback Promise Generator Async 需求 显示购物车商品列表的页面,用户可以勾选想要删除商品(单选 ...

  7. 关于Angular6版本升级和RXJS6新特性的讲解

    从Angular5升级到Angular6, angular6相比较于angular5 总体变化不大,但是在RXJS上面却有一些变动,不得不说,虽然很讨厌break update但是RXJS6的新特性对 ...

  8. BZOJ2038【莫队算法】

    THE FIRST 莫队算法. /************************************************************** Problem: 2038 User: ...

  9. Lightoj 1008【规律】

    25 24 23 22 21 10 11 12 13 20 9 8 7 14 19 2 3 6 15 18 1 4 5 16 17 然后把这个转化成: 17 18 19 20 21 10 11 12 ...

  10. Codeforces712B【= =】

    题意: 题意: 最少需要几步改变能够使得按照原序列的走法从起源走到起源: 思路: 长度奇数肯定不行 偶数的情况下.. 其实题意转变就是有4个数a,b,c,d,在最小的改变下,使a==b,c==d; 那 ...