python基础笔记-0
python中数据结构,主要有列表、元组、字典、集合。
python中最基本数据结构是序列(sequence)。序列中每个元素被分配一个序号——即元素位置,也成为索引。第一个索引是0,第二个是1,以此类推。
python包含6种内建序列,其他内建序列类型有字符串、unicode字符串、buffer对象和range对象。
python之中还有一种名为容器(container)的数据结构。容器基本上是包含其他对象的任意对象。序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中每个元素都有自己编号,而映射中每个元素则有一个名字(也称为键)。至于既不是序列也不是映射的容器类型,集合(Set)就是一个例子。
列表用[]表示,元组用(),字典用{key:values...},set{...}
列表和元组属于序列,其中列表是可变序列,可以直接对其进行赋值操作,元组是不可变序列。
所有序列类型都可以进行某些特定法操作。这些操作包括:索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员(成员资格)。
list方法可以适用于类型的序列,而不只是字符串
列表方法:
list.append 在列表末尾追加新的对象
list.count 统计某个元素在列表中出现的次数
list.extend 在列表的末尾一次性追加另一个序列的多个值
a = [1,2,3,] b=[,4,5,6] a.extend(b)
list.index 从列表中找出某个值第一个匹配项的索引位置
list.insert 将对象插入到列表当中
a = [1,2,3] a.insert(2,4)
list.pop 移除列表中最后一个元素,并且返回该元素的值
使用pop方法可以实现一种常见数据结构-栈,后进先出(LIFO)
list.remove 移除列表中某个值得第一个匹配项
list.sort 在原位置对列表进行排序,意味着改变原来的列表,而不是简单地返回一个以排序的列表副本
当需要一个排好序的列表副本,同时又保留原有列表不变时,使用如下做法是错误的:
x = ['a','b','c','d']
y = x.sort()
print y
返回的是None
因为sort方法修改了X却返回了空值,那么最后得到的是以排序的X以及值为none的y。实现这个功能的正确做法是,首先把副本赋值给y,然后对y进行排序:
y = x[:]
y.sort()
再次调用x[:]得到包含了x所有元素的分片,这是一种很有效率复制整个列表的方法,只是简单的把x赋值给y是没用的,因为这样做就是让x和y都指向同一个列表。
另外一种获取以排序的列表副本方法是,使用sorted函数:
这个函数实际上可以用于任何一个序列,却总是返回一个列表。
元组:不可变序列
除了创建元组和访问元组元素之外,也没有太多其他操作,元组的分片还是元组,就像列表的分片还是列表一样。
字符串:格式化
s%称为转换说明符(conversion specifier),它们标记了需要插入转化值的位置。s表示值会被格式化为字符串,如果不是字符串,则会用str将其转换为字符串
字符串格式化转换类型(具体参见转换表)
字符方法:从string模块中继承了很多方法
find 可以在一个较长字符串中查找子字符串,它返回子串所在位置的最左端索引,如果没有找到则返回一个-1
join s是split方法的逆方法,用来在队伍中添加元素,需要添加的队伍元素都必须是字符串
seq = ['1','2'] sep = '+' sep.join(seq)或者'/'.join(seq)
replace 返回某字符串的所有匹配项均为替换之后得到的字符串
'hello c++'.replace('c++','python')
split 它是join 的逆方法,用来将字符串分割成序列
'a+b+c+d'.split('+') ['a','b','c','d']
字典:并没有特殊顺序,但是都存储在一个特定键(key),Key可以是数字、字符串甚至是元组
字典的基本行为在很多方面与序列类似:
len(d)返回d中项(键-值对)的数量
d[k]返回关联到键K上的值
d[k]=v将值v关联到键K上
del d[k]删除键为K的项
尽管字典和列表由很多特性相同,但也有下面一些重要的区别
键类型:字典的键不一定为整型数据(但也可能是),也可能是其他不可变类型,比如浮点型(实型)、字符串或者元组
自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项。
成员资格:表达式k in d 查找的是键,而不是值。
字典方法:
clear 清除字典中所有的项,这是个原地操作,所以无返回值,或者说返回为none
copy 返回一个具有相同键值的对得新字典(这个方法是浅复制,使用deepcopys实现深复制)
items和iteritems items方法将所有的字典项以列表的方式返回,这些列表项中的每一项都来自于(键,值)。但是项在返回时并没有特殊的顺序。
keys和iterkeys 将字典中的键以列表形式返回,而Iterkeys则返回针对键迭代器。
pop 方法用来获得对应于给定键的值,然后将这个键值对从字典中移除
popitem 类似于List.pop,后者会弹出最后一个元素,但不同的是,popitem会弹出随机的项,因为字典没有‘最后一个元素’的概念
values 以列表的形式返回字典中的值,与返回键的列表不同的是,返回值得列表中可以包含重复的元素。
python基础笔记-0的更多相关文章
- Python基础笔记系列十一:标准输入输出、文件读写和指针等操作
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...
- Python基础笔记系列一:基本工具与表达式
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...
- 我的Python基础笔记
Python是从刚开始参加工作,就有听各方面的测试大牛推崇,但是刚开始做测试时还是把基础的测试方法放在第一位来学习的,直到半年多以后才开始接触Python. 我的Python基础主要是以廖雪峰老师的在 ...
- Python基础笔记1
这篇笔记来自廖雪峰的Python教程. 一.Python基础 Python使用缩进来组织代码块,务必遵守约定俗成的习惯,坚持使用4个空格的缩进. 在文本编辑器中,需要设置把Tab自动转换为4个空格,确 ...
- TensorFlow基础笔记(0) 参考资源学习文档
1 官方文档 https://www.tensorflow.org/api_docs/ 2 极客学院中文文档 http://www.tensorfly.cn/tfdoc/api_docs/python ...
- Python基础笔记系列十四:python无缝调用c程序
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...
- Python基础笔记系列十三:socket网络编程
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...
- Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...
- Python基础笔记系列八:字符串的运算和相关函数
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...
随机推荐
- VS2010 配置 DirectX 开发环境
1.首先下载 DXSDK 并安装 http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/D ...
- python面向对象(下)
继承 继承描述了基类的属性如何"遗传"给派生类.一个子类可以继承它的基类的任何属性,不管是数据属性还是方法.创建子类的语法看起来与普通(新式)类没有区别,一个类名,后跟一个或多个需 ...
- 在vs.net c#中添加mysql模型
http://weblogs.asp.net/gunnarpeipman/getting-mysql-work-with-entity-framework-4-0 http://dev.mysql.c ...
- css3投影讲解、投影
迷茫了好一段时间,今天开始整理一下自己,同时也整理下新的知识. CSS3: 从头开始做起:现在在页面中用到最多的是图片/容器投影,文字投影: 接下来就总结一个投影问题: box-shadow:阴影类型 ...
- JAVA的网络编程【转】
JAVA的网络编程[转] Posted on 2009-12-03 18:04 火之光 阅读(93441) 评论(20) 编辑 收藏 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能, ...
- GNU所有软件下载,其中最有意思的是octave
http://ftp.gnu.org/gnu/ 最有意思的是octave:https://www.gnu.org/software/octave/http://ftp.gnu.org/gnu/octa ...
- codevs1219 骑士游历
题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马. 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y ...
- cf455A Boredom
A. Boredom time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- 【POJ 3009 Curling2.0 迷宫寻径 DFS】
http://poj.org/problem?id=3009 模拟冰壶的移动,给出到达终点的最少投掷次数(不可达时为-1). 具体移动规则如下: 每次选四个方向之一,沿此方向一直前进,直到撞到bloc ...
- 关于select
select 1与select * 的区别:“selelct 常量 from 表名” 对应所有行,返回的永远只有一个值,即常量 ,所以一般只用来判断是否有表记录:而“select * from 表名” ...