核心数字类型:

数字:int,long,float,complex,bool

字符:str,unicode

列表:list

字典:dict

元组:tuple

文件:file

其他类型:集合(set),frozenset,类型,None


其他文件类工具:pipes,fifos,sockets.

类型转换:

str(),repr()或format():将非字符型数据转换成字符;

int():转换为整数

float():转换为浮点数

list(x):可以把字符串x转换为列表,

tuple(x):将字符串x转换为元组;

set(x):将字符串转换为集合.

dict(d):创建字典,其d必须是[(key,value),(key,value)]的元组序列:

chr(x):将整数转为字符.

ord(x):将字符转换为整数值.

hex(x):将整数转换为16进制字符.

bin(x):将整数转换为2进制字符.


数字类型:

Python的数字字面量:布尔型,整数,浮点数,复数

True:1

False:0


序列类型:

字符类型:

字符串字面量:把文本放入单引号、双引号或三引号中:

如果要使用unicode编码,则在字符之前使用字符u进行表示,如u"xxx"

 

适用于所有序列的操作和方法:

s[i]:索引运算符

s[i:j]:为切片运算符,s[i:j:stride]为扩展切片运算符

min(s)和max(s)只适用于能够对元素排序的序列

sum(s)只适用于数字序列

all(s)检查s中的所有项是否为True

any(s)检查s中的任意项是否为False

1
2
3
4
5
>>>  str = "9876544531"
>>>  min ( str )
'1'
>>>  max ( str )
'9'

用于字符串的操作:

Python2 提供两种字符串对象类型:

字节字符串:字节序列

unicode字符串:Unicode字符序列

Python可以使用32bit整数保存Unicode字符,但此为可选特性.

1
2
3
4
5
6
7
>>> str2 = "hellow"
>>> str2.islower()
True
>>> str2.isupper()
False
>>> str2.upper()
'HELLOW'

capitalize 字符串的首字母大写s.capitalize()

s.index(sub[,start[,end]]) 找到指定字符串sub首次出现的位置,否则报错

s.join(t) 使用s作为分隔符连接序列t中的字符串

s.lower() 转换为小写形式

s.split([sep[,maxsplit]]) 使用sep作为分隔符对一个字符串进行划分。maxsplit是划分的最大次数

s.strip 删掉chrs开头和结尾的空白或字符

s.upper()将一个字符串转换为大写形式

replace('old','new') 将所有旧的字符串替换为新的字符串


1
2
3
4
5
str = "hello world"
l2 = list ( str )
print  l2
str3 = ''.join(l2) #使用空白作为分隔符将list列表组合起来.
print  str3
1
2
str = "hello world"
print  str .replace( 'hello' , 'HELLO' )


split 以.为分隔符,对字符串进行操作.

1
2
3
str = "www.baidu.com"
print  str .split( '.' )
[ 'www' 'baidu' 'com' ]

s.strip()用来删除s字符串左右两边的空白字符的.

1
2
3
str= "   hello    "
print str.strip()
hello


列表:

容器类型:

任意对象的有序集合,通过索引访问其中的元素,可变对象,

异构,任意嵌套


支持在原处修改:

修改指定的索引


del() 删除列表中的元素

append() 新增列表中的元素

1
2
3
4
str=[ '1' , 'a' , 'b' , '7' ]
del(str[1:])
print str
结果:[1]

1
2
3
4
str=[ '1' , 'a' , 'b' , '7' ]
str.append( "hello" )
print str
结果:[ '1' 'a' 'b' '7' 'hello' ]


count() 获取指定列表中元素出现的次数

1
2
3
str=[ '1' , 'a' , 'b' , '7' ]
print str.count( 'a' )
结果:1

extend() 列表扩充,将原先列表中的元素扩充进来.

1
2
3
4
5
str=[ '1' , 'a' , 'b' , '7' ]
l1=[ 'x' , 'y' , 'z' ]
str.extend(l1)
print str
结果:[ '1' 'a' 'b' '7' 'x' 'y' 'z' ]

append() 新增列表元素元素

1
2
3
4
5
str=[ '1' , 'a' , 'b' , '7' ]
l1=[ 'x' , 'y' , 'z' ]
str.append(l1)
print str
结果:[ '1' 'a' 'b' '7' , [ 'x' 'y' 'z' ]]

打印列表中某元素索引的位置.

1
2
3
4
>>> print str
[ '1' 'a' 'b' '7' 'x' 'y' 'z' ]
>>> str.index( 'a' )
1

s.insert 在索引的位置添加新的字符串.

1
2
3
>>> str.insert(1, "ccc" )
>>> print str
[ '1' 'ccc' 'a' 'b' '7' 'x' 'y' 'z' ]

s.pop弹出某个索引对应的元素,默认为弹出最后一个列表的元素.

弹出以后将返回这个元素.

1
2
3
4
5
6
>>> print str
[ '1' 'ccc' 'a' 'b' '7' 'x' 'y' 'z' ]
>>> str.pop(2)
'a'
>>> str.pop()
'z'

s.remove()删除列表中指定元素的值

1
2
3
4
5
6
>>> str.remove( 'y' )
>>> print str
[ '1' 'ccc' 'b' '7' 'x' ]
>>> str.remove( 'b' )
>>> print str
[ '1' 'ccc' '7' 'x' ]

s.sort排序,正序;在原处修改,没人任何返回.

1
2
3
4
5
>>> print str
[ '1' 'ccc' '7' 'x' ]
>>> str. sort ()
>>> print str
[ '1' '7' 'ccc' 'x' ]

s.reserse 逆序,倒序

1
2
3
4
5
>>>  print  str
[ '1' '7' 'ccc' 'x' ]
>>>  str .reverse()
>>>  print  str
[ 'x' 'ccc' '7' '1' ]

l1+l2:合并两个列表,返回一个新的列表,不会修改原列表.

1
2
3
4
>>> l1=[1,2,3]
>>> l2=[7,8,10]
>>> l1+l2
[1, 2, 3, 7, 8, 10]

l1 * N:把l1重复N次,返回一个新列表.

1
2
3
>>> l1=[1,2,3]
>>> l1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

in:成员关系判断字符

用法:某个元素in 某个容器

1
2
3
4
>>> 2  in  l1
True
>>> 2  in  l2
False

not in :判断某个元素不在某个列表中.


列表解析:[]

深度复制列表中的元素,内存中所引用的对象发生变化。

copy.deepcopy()

实例:

1
2
3
4
5
6
7
import  copy
l1=[1,2,3]
l2=copy.deepcopy(l1)
print l2
l1.append(4)
print l1
print l2

l2等于l1列表中的所有元素.

l2=l1[:]


元组:

表达式符号:()

容器类型

任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定.

虽然元组本身不可变,但如果元组内嵌套了可变类型的元素,那么此类元素的修改不会返回新元组.

列子:

1
2
3
4
5
l1=(1,2,3,[ 'a' , 'b' , 'c' ])
print l1
print l1[3]
l1[3].pop()
print l1

字典:dict

字典在其他编程语言中又称作关联数组或散列表;

通过键实现元素存取;无序集合;可变类容器,长度可变,异构,嵌套.


{key:value1,key2:value2}

{}空字典

l1={"x":['a','b','c'],"y":32}

print l1["x"]


结果为:['a', 'b', 'c']

对于字典的引用,需要使用key调用对应的值;


字典也支持切片:

1
2
3
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print l1[ "x" ][1:]
[ 'b' 'c' ]

len()返回字典中元素的个数

l1={"x":['a','b','c'],"y":32}

print len(l1)

结果为:2


字典支持修改,元素可变:

1
2
3
4
5
6
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print  id (l1)
print l1[ "y" ]
l1[ "y" ] = 504
print l1
print  id (l1)

dicr.copy()复制copy,相当于完全copyl1

1
2
3
4
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print l1
l2=l1.copy()
print l2

dict.get()获取指定key的value值.

1
2
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print l1.get( "x" )

查看字典中有没有x这个key

1
2
3
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print l1.get( "x" )
print l1.has_key( "x" )

dict.get()和dict[s]区别在于:

dict.get()获取字典中就算没有这个值也不会报错,但是要是dict[]这个值就会直接报错.


dict.items将字典中的key:value以列表元组的形式拆开.

1
2
3
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print l1.items()
结果:[( 'y' , 32), ( 'x' , [ 'a' 'b' 'c' ])]

1
2
l1={ "x" :[ 'a' , 'b' , 'c' ], "y" :32}
print l1.items()

变量解包,元组支持解包,字典直接不支持解包.

1
2
3
4
t1,t2=l1.items()
print t1,t2
[( 'y' , 32), ( 'x' , [ 'a' 'b' 'c' ])]
( 'y' , 32) ( 'x' , [ 'a' 'b' 'c' ])

1
2
3
m1,m2={ 'x' :1, 'y' :2}
print m1,m2
结果:y x  可以看到字典时无序的,不支持直接解包.

dict.keys()是key组成的列表,dict.values()字典值组成的列表.

1
2
3
l1={ 'x' :21, 'y' :5}
print l1.keys()
print l1.values()

dict.update()合并字典

1
2
3
4
l1={ 'x' :21, 'y' :5}
l2={ 'a' :21, 'b' :7, 'x' :32}
l1.update(l2)
print l1

dict.next()迭代.

1
2
3
l1={ 'x' :21, 'y' :5}
i1=l1.iteritems()
print i1.next()

zip函数:快速构建字典的方式

1
2
3
4
5
print zip( 'abcd' , '123' )
print dict(zip( 'abcd' , '123' ))
结果:
[( 'a' '1' ), ( 'b' '2' ), ( 'c' '3' )]
{ 'a' '1' 'c' '3' 'b' '2' }