元组

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. Console Event Handling

    http://www.codeproject.com/Articles/2357/Console-Event-Handling Console Event Handling Kumar Gaurav ...

  2. spring使用过程中遇到的问题

    1.出现这样的错误:The type org.springframework.core.NestedRuntimeException cannot be resolved. It is indirec ...

  3. 检测到"_ITERATOR_DEBUG_LEVEL"的不匹配项

    error: vtkCommon.lib(vtkSmartPointerBase.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:值“0”不 ...

  4. 走进VR游戏开发的世界

    http://geek.csdn.net/news/detail/76504 我们组在2014年下半年尝试开发了一款Xbox One平台的体感游戏,2015年上半年进行收尾工作的同时,结合之前积累的体 ...

  5. Unity3D asset bundle 格式简析

    http://blog.codingnow.com/2014/08/unity3d_asset_bundle.html Unity3D 的 asset bundle 的格式并没有公开.但为了做更好的差 ...

  6. Educational Codeforces Round 20 C(math)

    題目鏈接: http://codeforces.com/problemset/problem/803/C 題意: 給出兩個數n, k, 將n拆分成k個數的和,要求這k個數是嚴格遞增的,並且這k個數的g ...

  7. 初入Three.js 第一章

    一.什么是WebGL? 1.WebGL是在浏览器中实现三维效果的一套规范. 二.什么是threejs? 1.你将它理解成three + js就可以了.three表示3D的意思,js表示javascri ...

  8. CF1138D.Camp Schedule

    传送门 虽然是D,但是还是Sb题,把模式串跑一遍KMP,然后把按顺序放,每次放完之后跳到对应的前缀,继续放. 如果最后1的数量还有剩,再将最后的位数全部放1 代码: #include<cstdi ...

  9. Java - 安装jdk并设置环境变量

    前言 双十一买了台新的笔记本,需要重新安装下Java,这里记录下安装的过程,毕竟万事开头难,就算是老手也不一定能一次就把Java安装成功. 安装jdk 作为一名Java开发,当然是要安装jdk了,如果 ...

  10. Jquery | 基础 | .hover()

    https://api.jquery.com/hover/#hover-handlerIn-handlerOut http://jquery.cuishifeng.cn/hover.html