Python学习笔记(2)——Python的数据结构

Python的数据结构

数字、字符串、列表、元组、字典

Python学习笔记(2)——Python的数据结构_第1张图片
关于数字只需要主要下面几点:

1、数字显示的格式

>>>num = 1/ 3.0

>>>num

0.33333333333333331

>>>print num

0.333333333333

>>>"%e"%num

'3.333333e-01'

>>>"%2.2f"%num

'0.33'

2、math模块-普通数学函数,cmath模块-处理复数的模块

3、random模块: 用于产生随机数

>>>import random

>>>random.random()

0.33452758558893336

>>>random.randint(1,10)

5

>>>random.choice(['a','b', 'c'])

'c'

list 列表[]

1、 任意对象的 有序 集合

    从功能是看,列表就是收集其他对象的地方,可以他们看成数组;同时,列表所包含的每一项都保持了从左到右的位置顺序(也就是说,它们是序列)。

2、 通过 偏移 读取

   和字符串一样,可以通过列表对象的偏移对其进行索引,从而读取对象的一部分内容。当然也可以执行诸如分片和合并之类的操作。

3、 可变长度 、异构以及任意嵌套

和字符串不同,列表可以根据需要增长或缩短(长度可变),并且可以包含任何类型的对象,并支持任意的嵌套。

4、 可变序列
列表 支持在原处的修改 ,也可以响应所有针对字符串序列的操作,如索引、分片以及合并。

Python学习笔记(2)——Python的数据结构_第2张图片

- append(x)

       把一个元素添加到列表的结尾,相当于a[len(a):]= [x]

- extend(L)

将列表L中的表项添加到列表中。返回None,相当于a[len(a):]=L

- insert( i,x )

在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如a.insert(0,x)会插入到整个链表之前,而a.insert(len(a),x)相当于a.append(x)

- remove(x)

删除链表中值为x的第一个元素。如果没有这样的元素,就会返回一个错误。

- pop([ i ])

从链表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从链表中被删除。(方法中i两边的方括号表示这个参数是可选的,而不是要求输入一对方括号,会经常在Python库参考手册中遇到这样的标记。)

- index(x)

返回链表中第一个值为x的元素的索引。如果没有匹配的元素就会返回一个错误。

- count(x)

返回x在链表中出现的次数。

- sort()

对链表中的元素进行适当的排序。

- reverse()

倒排链表中的元素。

-del 删除列表元素

o 可以用 del 进行
o 可以删除某个索引的元素或切片元素

Python学习笔记(2)——Python的数据结构_第3张图片

总之,

Python学习笔记(2)——Python的数据结构_第4张图片

列表作为堆栈使用(后进先出)

st.append()

st.pop()

列表作为队列使用(先进先出)

queue.append()

queue.pop(0)


tuple元组()

-一个元组由数个逗号分隔的值组成,例如:
Python学习笔记(2)——Python的数据结构_第5张图片
-如上所示,元组在输出时总是有括号的,以便于正确表达嵌套结构。
-在输入时,有或没有括号都可以,不过经常括号都是必须的(如果元组是一个更大的表达式的一部分)。
-元组就像字符串,不可改变 :不能给元组的一个独立的元素赋值
- 可以通过包含可变对象来创建元组,例如列表
>>> lst = [1, 2, 3]
>>> t = tuple(lst)
>>> t
(1, 2, 3)

- 特殊的问题 是构造包含 零个或一个元素 的元组:为了适应这种情况,语法上有一些额外的改变。一对空的括号可以创建空元组;要创建一个单元素元组可以在值后面跟一个逗号(在括号中放入一个单值是不够的)。

1、 元组封装和解封
语句t = 12345, 54321, ’hello!’ 是元组封装(sequence packing)的一个例子:值12345,54321 和’hello!’ 被封装进元组。其逆操作可能是这样:
Python学习笔记(2)——Python的数据结构_第6张图片序列拆封要求左侧的变量数目与序列的元素个数相同。
2、 序列对象
字符串、列表和元组 的对象类型均属于称为序列的Python对象,一种 可使用数字化索引进行访问其中元素 的对象 。
-可用算术运算符联接或重复序列。 (+/*)
-比较运算符(<,<=,>,>=,!=,==)也可用于序列 。
-可通过下标,切片和解包来访问序列的某部份。 
a=“123456”  
print a[1],a[3:],a[:3],a[2:4]
-in运算符可判断当有对象是否序列对象成员。 
'1' in a
-也可通过循环运算符对序列对象进行迭代操作。 
for x in range(1,10):

Dictionary字典{}
字典类似于通过联系人名字查找地址和联系人详细情况的地址簿,即:我们把(名字)和(详细情况)联系在一起。注意,键必须是唯一的。
-序列是以连续的整数为索引,与此不同的是,字典以关键字为索引。关键字可以是任意 不可变类型,通常用字符串或数值。

理解字典的最佳方式是把它看做无序的(关键字:值)对集合 ,关键字必须是互不相同的(在同一个字典之内)。
- 一对大括号创建一个空的字典: {}
- 字典的主要操作是依据关键字来存储和析取值。也可以用 del 来删除 ( 关键字 : ) 对。
- 如果使用一个已经存在的关键字存储新的值或对象,以前为该关键字分配的值就会被遗忘。

1、 字典的 keys() 方法返回由所有关键字组成的列表,该列表的顺序不定(如果需要它有序,只能调用返回列表的 sort() 方法)。
2、 使用字典的 has_key () 方法可以检查字典中是否存在某一关键字。
3、 字典的 values() 方法返回字典内所有的值。
4、 字典的 get() 方法可以根据关键字返回值,如果不存在输入的关键字,返回 None
Python学习笔记(2)——Python的数据结构_第7张图片
5、 字典的 update( anothordict ) 方法类似于合并,它把一个字典的关键字和值合并到另一个,盲目的覆盖相同键的值。
Python学习笔记(2)——Python的数据结构_第8张图片
6、 字典的 pop() 方法能够从字典中删除一个关键字并返回它的值,类似于列表的 pop 方法,只不过删除的是一个关键字而不是位置。

Python学习笔记(2)——Python的数据结构_第9张图片
总之,
Python学习笔记(2)——Python的数据结构_第10张图片
学习资料来自中国科学院大学张老师讲授的《Python科学计算与数据处理》ppt
















你可能感兴趣的:(学习笔记)