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 以列表的形式返回字典中的值,与返回键的列表不同的是,返回值得列表中可以包含重复的元素。

+

tags:《python基础教程》第二版

时间: 2024-08-06 11:35:55

python基础学习笔记-0的相关文章

Python基础学习笔记

Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单. 2.易于阅读:Python代码定义的更清晰. 3.易于维护:Python的成功在于它的源代码是相当容易维护的. 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好. 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断. 6.可移植:基于其开放源代码的特性,Py

Python基础学习笔记(四)语句

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 ? 条件语句 条件语句的使用实例如下: #!/usr/bin/python # -*- coding: UTF-8 -*- # 例2:elif用法 num =

Python基础学习笔记(五)常用字符串内建函数

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-strings.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 Python字符串内建函数同样支持Unicode,常用函数如下表: 方法 描述 string.capitalize() 把字符串的第一个字符大写 string.center(wi

Python基础学习笔记(十)日期Calendar和时间Timer

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-date-time.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 时间间隔是以秒为单位的浮点函数.获取该时间的实例如下: 时间元组struct_time: 序号 属性 值 0 tm_year 2008 1 tm_mon 1 到 12 2 t

Python基础学习笔记(三)

python 基础笔记之寻求帮助 1.寻求帮助 python中的帮助文档和shell中的一样,也是相当丰富的,可以使用 help(object) 来查看帮助,其中object 是你要查找帮助的对象,比如,查看dir的功能,可以用 >>> help(dir) 2.查看python中的内置函数.内置类,及其他内置对象 >>> dir(__builtins__) 3.查看对象自身的类型或者是函数作用的参数类型 1)查看对象自身的类型:在python交互式shell中直接输入

Python基础学习笔记(一)变量类型

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 ? 变量赋值 Python中变量不需要声明,变量赋值操作就是变量声明和定义的过程. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.例子如下: #!/

Python基础学习笔记(三)运算符

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 ? 运算符 ▼// 整除 ▼ ** 幂次 ▼ !=和<> 不等于 ▼逻辑运算符:and与 or或 not非 ▼ 成员运算符:① in 如果在指定序列

Python基础学习笔记(七)常用元组内置函数

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 Python常用元组内置函数: 序号 方法及描述 1 cmp(tuple1, tuple2)比较两个元组元素. 2 len(tuple)计算元组元素个数. 3 max(tuple)

Python基础学习笔记(六)常用列表操作函数和方法

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 常用操作列表的内置函数: 序号 函数 1 cmp(list1, list2)比较两个列表的元素 2 len(list)列表元素个数 3 max(list)返回列表元素最大值 4 mi