Python的序列Ⅱ

  • 字符串

所有标准的序列操作对字符串同样适用,但是字符串是不可变的。

字符串格式化:

#示例
>>> 'num is: %d' % 18
'num is: 18'

>>> 'str is %s' % 'string'
'str is string

#字段宽度和精度及'*'的作用

>>> '%10f' % math.pi #宽度10
'  3.141593'
>>> '%.10f' % math.pi#精度10
'3.1415926536'

>>> '%10.2f' % math.pi#宽度10精度2
'      3.14'

>>> '%.*f' % (5,math.pi)
'3.14159'
>>> '%*f' % (5,math.pi)
'3.141593'
##字符宽度和精度值之前还可以放置一个'标志'
>>> '%010.2f' % math.pi #这里的0表示将会用0填充
'0000003.14'
>>> '%-10.2f' % math.pi#'-'表示左对齐
'3.14      '
>>> '%+10f' % math.pi '+'表示在正数前显示+' +3.141593'

字符串方法(内建函数)

 #find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
>>> str = 'taking off tight shoes'
>>> str.find("off")
7
>>> str.find("off",8,15)
-1

#join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
>>> s1 = '/'
>>> seq = ['','User','jm','Desktop']
>>> s1.join(seq)
'/User/jm/Desktop'

#lower() 转换字符串中所有大写字符为小写.
>>> s1 = 'HELLO,WORLD!'
>>> s1.lower()
'hello,world!'
>>> s1.title() #首字母大写
'Hello,World!'

#replace(old, new [, count]) 将字符串中的 str1 替换成 str2,如果 count指定,则替换不超过 count次。

>>> s2 = 'fake-smile jail cells'
>>> s2.replace('l','xxx')
'fake-smixxxe jaixxx cexxxxxxs'
>>> s2.replace('l','xxx',2)
'fake-smixxxe jaixxx cells'

#split(str="", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串
>>> s3 = 'User/jm/Desktop'
>>> s3.split('/')
['User', 'jm', 'Desktop']

#    
strip([chars]) 在字符串上执行 lstrip()和 rstrip()(移除字符串头尾指定的字符)
>>> s4 = '***Hello,***world***'
>>> s4.strip('*')
'Hello,***world'

# translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。
table = str.maketrans('cd','ef') #maketrans() 方法用于创建字符映射的转换表
>>> s5 = 'abcdefghijklmnopqrstuvwxyz'
>>> s5.translate(table)
'abefefghijklmnopqrstuvwxyz'
#
>>> bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')   
>>> s6.translate(bytes_tabtrans,b't')
b'HP://WWW.CNBLOGS.COM/TABBY/'

 

  • 字典

基础知识

#创建及使用字典
>>> dic = {'Jameson':'1001','Jack':'1002','Abel':'1003'}#创建
#使用dict()创建字典
>>> arr = [('name','jack'),('num',1001)]
>>> dic2 = dict(arr)
>>> dic2
{'num': 1001, 'name': 'jack'}
#或
>>> dic3 = dict(name='jack',num='1001')
>>> dic3
{'num': '1001', 'name': 'jack'}

#使用
>>> dic['Abel']
'1003'

>>> "Jack's num is %(Jack)s." % dic
"Jack's num is 1002."


>>> dic["Jack"] = 1005 #修改
>>> dic["Berg"] = 1007 #增加
>>> dic
{'Abel': '1003', 'Jack': 1005, 'Jameson': '1001', 'Berg': 1007}

 

字典方法

#clear() 删除字典内所有元素
>>> dic2 = {'num': 1001, 'name': 'jack'}
>>> dic2.clear()
>>> dic2
{}

#copy() 复制字典
>>> dic4 = dic#这样也可以
>>> dic4
{'Abel': '1003', 'Jack': 1005, 'Jameson': '1001', 'Berg': 1007}
>>> dic5 = dic.copy()
>>> dic5
{'Abel': '1003', 'Jack': 1005, 'Jameson': '1001', 'Berg': 1007}

>>> dic["Jack"] = 1009#修改下dic的值试试

>>> dic4
{'Abel': '1003', 'Jack': 1009, 'Jameson': '1001', 'Berg': 1007}#浅复制
>>> dic5
{'Abel': '1003', 'Jack': 1005, 'Jameson': '1001', 'Berg': 1007}#深复制

#fromkeys(seq[, value])) 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
>>> dict.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> dict.fromkeys(['name','age'],'unknown')
{'age': 'unknown', 'name': 'unknown'}

#get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值。

#另外,检查字典是否有某键用in
>>> 'Jack' in dic
True
>>> 'name' in dic
False

#items() 以列表返回可遍历的(键, 值) 元组数组
>>> dic.items()
dict_items([('Abel', '1003'), ('Jack', 1009), ('Jameson', '1001'), ('Berg', 1007)])

#keys() 以列表返回一个字典所有的键
>>> dic.keys()
dict_keys(['Abel', 'Jack', 'Jameson', 'Berg'])

#pop 获得给定键的值,然后将其从字典中移除(del,remove,pop,hah好多呀)
>>> dic.pop("Jack")
1009
>>> dic
{'Abel': '1003', 'Jameson': '1001', 'Berg': 1007}

#popitem() 随机返回并删除字典中的一对键和值.
>>> dic.popitem()
('Abel', '1003')
>>> dic
{'Jameson': '1001', 'Berg': 1007}

#setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
>>> dic.setdefault("Carl ")
>>> dic
{'Carl ': None, 'Jameson': '1001', 'Berg': 1007}

#values() 以列表返回字典中的所有值
>>> dic.values()
dict_values([None, '1001', 1007])

#update(dic2) 把字典dict2的键/值对更新到dict里
>>> dic6 = {'Name': 'Runoob', 'Age': 7}
>>> dic7 = {'Sex': 'female' }
>>> dic6.update(dic7)
>>> dic6
{'Sex': 'female', 'Name': 'Runoob', 'Age': 7}

 

 注:参考《Python基础教程》(第2版)·修订版

posted @ 2017-09-07 00:37  __Altair  阅读(317)  评论(0编辑  收藏  举报