Python学习笔记(四)——Python数据结构之字符串&字典

python最重要的3种数据类型,列表、字符串、字典,前面已经介绍了列表,本篇介绍字符串和字典数据类型及常用操作。
一、字符串
   所有序列通用方法,同样适用与字符串。但字符串都是不可变的,所以不可使用分片赋值。

#将com替换成org TypeError: 'str' object does not support item assignment
x='http://max.com'
x[-3:]='org'
print x
报错:TypeError: 'str' object does not support item assignment
因为string字符串是不可变类型,故不能直接只用分片赋值方式修改。可使用string其他函数实现。下面会有所介绍。

1、字符串格式化 
 求模操作符%可用于将其他值转换成包含转换符标志的str,例如%s,
format="HI,%s, this is %s! " #%转换说明符,s表示输入为str
value=('LEE','MAX')
print format % value

#使用元组直接转换,效果同上
print 'HI,%s, this is %s!' %('Lee','Max')  

format='pi with 3 decimals:%.5f' #.表示希望保留小数点位数,f表示float类型
from math import pi
print format % pi

#注意如果格式化字符里包含%,则需要用%%表示。


#模板字符串 sunstitute方法
from string import Template
s=Template('$x,hi $x!')
print s.substitute(x='Max') 
#同理,如果格式化字符里包含美元符号$,则需要用$$表示。
2、字符串常用方法
#字符串方法
#find 返回所在索引  str.find('str')
print 'max is a warm hearted girl'.find('max') #0
print 'max is a warm hearted girl'.find('is') #4 空格也占一个索引

#join 和split  str.join(str) 拼接str
dirs='','usr','bin','env'
print '/'.join(dirs) #/usr/bin/env
print 'c:'+'\\'.join(dirs) #c:\usr\bin\env
#\\ 两个\ 转义成\

#split str.split('sign') 以什么标记进行拆分,默认空格
print 'using namespace java'.split() #['using', 'namespace', 'java']
newdir= 'c:'+'\\'.join(dirs)
print newdir.split('\\') #['c:', 'usr', 'bin', 'env'] \\转义 实际表示\
#lower str.lower()
name='MAX'
names=['Maz','max','Lee']
if name.lower() in names : print 'found it!'


#replace str.replate('old_str','new_str')
'this is max'.replace('max','max zhong')

#strip 去str前后空格
##去除前后两个空格
print '  max  '.strip()
#去除指定字符,but只去除两侧,中间的无法修改
print 'max is *** fine !!***'.strip('*') #max is *** fine !!

#translate  同replace一样替换str某部分,but translate只处理单个字符。比replace效率高
#makestrans 
from  string import maketrans
table=maketrans('cs','kz')
print len(table) #256
二、字典
   在上篇介绍列表时,与字典有所对比。例如两个列表如下
#-*- coding: utf-8 -*-
names=['max','lee','lv','cp']
nums=['001','002','003','004']
print nums[names.index('cp')] #004

#phonebook['cp'] phonebook就是字典
1、创建字典
#创建字典
phonebook={'max':'001','lee':'002'}
print phonebook['max']  #001

#dict 函数 将其他字典转换成(key,value)格式
items=[('name','max'),('num',001)]
print dict(items) #{'num': 1, 'name': 'max'}

print dict(name='max',num=001)#{'num': 1, 'name': 'max'}
   ps.其他字典相关方法不再赘述。有必要再查看相关文档。






你可能感兴趣的:(Python学习笔记(四)——Python数据结构之字符串&字典)