[Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容
第二章 Python序列-tuple
tuple创建的tips
- a_tuple=(‘a’,),要这样创建,而不是a_tuple=(‘a’),后者是一个创建了一个字符
tuple常用操作
- 类似list,但是不能进行修改.能作为字典的key值
- 当然如果tuple中的元素有list,要另当别论
序列解包
>
- 可以用序列解包对多个变量同时进行赋值
- 序列解包也可以用于列表和字典。字典默认是对key操作,如果需要key-value操作,需要items()方法,如果仅对value操作,需要用values()方法明确指定
- 在调用函数时,在实参面前加入一个星号”*”也可以进行序列解包,从而实现将序列中的元素值一次传递给相同数量的形参,详情见之后.
生成器推倒式
- 生成器推导式和列表推倒式非常接近.
- 生成器推导式的结果是一个生成器对象。不是列表,也不是元组,而是一种迭代器(惰性计算).
- 利用next或者作为迭代器使用
- 当所有元素访问结束以后,如果需要重新访问其中的元素,必须重新创建该生成器对象。
g=(i**2 for i in range(0,10))
print(g)
#<generator object <genexpr> at 0x0000000002307CF0>
print(tuple(g)) #转换为列表
#(0, 1, 4, 9, 16, 25, 36, 49, 64, 81)
print(tuple(g)) #元素已经遍历结束,所以会为空
#()
g=(i**2 for i in range(0,10))
print(g.__next__())
# 0
print(g.__next__())
# 1
print(g.__next__())
# 4
g=(i**2 for i in range(0,10))
for i in g:
print (i,end=' ');
#0 1 4 9 16 25 36 49 64 81
第二章 Python序列-dict
定义
- 字典是”键-值对“的无序可变序列,字典中的每个元素包含两个部分:”键“和”值”。定义字典时,每个元素的“键”和“值”用冒号分隔,相邻元素之间用逗号分隔,所有的元素放在一堆大括号“{”和“}”中。
- 字典的“键”可以是Python 中任意不可变的数据,不能是列表,集合,字典
- 键不能重复 ,值能重复
内置函数globals() locals()
- globals()返回当前作用域的所有全局变量和值的字典
- locals() 返回当前作用域的所有局部变量和值得字典
字典创建与删除
使用内置函数dict()通过已有数据快速创建字典
x=dict(zip(keys,values))
使用内置函数dict()根据给点的“键值对”来创建字典
d=dict(name='Zhou Yong',age=18)
formkeys(list)
还可以给定内容为键,创建值为空的字典
adict=dict.fromkeys(['name','age','sex'])
- 使用del删除
字典元素的读取
下标:直接使用下标,若指定的键不存在会抛出异常
Dict['name2']
.get(dict[,指定值]):比较推荐的也是更安全的字典语速访问方法是用字典对象的get()方法,当键不存在的时候返回指定值,若不指定值,则返回None。
.items():返回字典的键值对列表
.values(): 返回字典的值列表
字典元素的添加,修改
- 指定键为下标赋值时,若键已经存在就修改,不存在就赋值。
- 可以用对象的方法.updata(dict),用另一个字典批量更新当前字典,原则同上
- .clear()
- .pop(key) 删除并返回指定键的元素
- .popitem() 删除并返回字典中的一个元素 类似随机了。感觉没什么卵用7
扩展
collections模块下的defaultdict
类似于C++STL中的MAP
可以规定好值的类型。
from collections import defaultdict
frequences=defaultdict(str);
for item in z :
frequences[item]+='a';
print(frequences.items())
from collections import defaultdict
frequences=defaultdict(1);
from item in z :
frequences[item]+=1;
print(frequences.items())
collections模块下的Counter类
计数的扩展类,统计各元素出现的次数,本质为一个dict
还有方法可以查找出现最多的元素等功能
collections模块下的OrderedDict
字典按照插入顺序排序
Python序列-set
集合的创建与删除
set()
set中不支持嵌套列表
del
只能删除整个集合
pop()
删除并返回第一个,不接受参数
add(x)
增加元素x 不是append
remove(x)
删除指定元素x
集合操作
并集
- set_a|set_b
- set_a.union(set_b)
交集
- set_a&set_b
- set_a.intersection(set_b)
差集
- set_a-set_b
- set_a.difference(set_b)
对称差
- set_a^set_b
- set_a.symmetric_difference(b_set)
子集
- x.issubstr(y)
[Python笔记][第二章Python序列-tuple,dict,set]的更多相关文章
- [Python笔记][第二章Python序列-复杂的数据结构]
2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
- Python笔记·第二章—— Python的编码问题(一)
一.什么是编码 可以说,计算机是一个即聪明又笨蛋的家伙.说它聪明,是因为他可以做很多事情,它的强大无需多说,大家应该都有所了解以及感受.但是为什么说它又是个笨蛋呢,因为我们在电脑上写出的每一个字,保存 ...
- [Python笔记][第一章Python基础]
2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...
- Python笔记·第一章—— Python基础(一)
一.Python的简介 1.Python的由来与版本 1.1 python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文 ...
- Python自学:第二章 Python之禅
>>print import <Python之禅>,提姆·彼得斯著 美胜于丑. 显式优于隐式. 简单胜于复杂. 复杂总比复杂好. 平的比嵌套的好. 稀疏胜于稠密. 可读性计数. ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- 第二章Python入门
第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...
- Android群英传笔记——第二章:Android开发工具新接触
Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...
随机推荐
- [Immutable.js] Converting Immutable.js Structures to Javascript and other Immutable Types
Immutable.js provides several conversion methods to migrate one structure to another. Each Immutable ...
- VS2008快捷键_大全
Ctrl+B,C: 清除全部标签 Ctrl+I: 渐进式搜索 Ctrl+Shift+I: 反向渐进式搜索 Ctrl+F: 查找 Ctrl+Shift+F: 在文件中查找 F3: 查找下一个 Shift ...
- linux中萌翻了的cowsay命令
想要让你的linux萌翻吗? 首先需要安装cowsay软件 命令如下:sudo apt-get update;sudo apt-get install cowsay 然后对其输入命令,默认情况下,动物 ...
- CSS减肥的工具–Firefox插件 CSS Usage
首先,我们需要安装Firefox(猛击此处下载),或者确定你已经安装的版本已经高于3.1; 第二步,安装前端开发人员最普及的开发工具 Firebug: 第三步,安装CSS Usage 0.3.4.1: ...
- COM口,串行通讯端口,RS-232接口 基础知识
COM口即串行通讯端口. COM口的接口标准规范和总线标准规范是RS-232,有时候也叫做RS-232口.电脑上的com口多为9针,最大速率115200bps.通常用于连接鼠标(串口)及通讯设备(如连 ...
- C#总结(2)
有输出,当然有输入.这样才会有人机交互. using System; using System.Collections.Generic; using System.Linq; using System ...
- 多台服务之间共享Session
一.问题:为了满足足够大的应用,满足更多的客户,就需要架设N台Web服务器(N>=2),在多台Web服务器的情况下,就会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够 ...
- 使用Promise规定来处理ajax请求的结果
ajax()返回结果是成功的,调用done()中的回调函数: 失败则调用fail()中的回调函数; always()的回调函数不管成功是否都会调用: 可以是使用then()函数代替done()和fai ...
- 让操作javascript对象数组像.net lamda表达式一样
让操作javascript对象数组像.net lamda表达式一样 随着web应用程序的富客户端化.ajax的广泛使用及复杂的前端业务逻辑.对js对象数组.json数组的各种操作越来越多.越来越复杂. ...
- C# 连接 数据库的时候 出现 程序出现异常"尝试读取或写入受保护的内存这通常指示其他内存已损坏" 错误
今天调试程序的时候出现了毫无征兆的就出现了如标题所述 的错误,我之前的程序 都运行的好好的,网上 找了 好多帖子 ,都是没有找到解决方案,最后 一个问一个同事 不知道他在哪儿找到了一个解决方案,说是 ...