Python的序列Ⅱ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(babcdefghijklmnopqrstuvwxyz, bABCDEFGHIJKLMNOPQRSTUVWXYZ)   
>>> s6.translate(bytes_tabtrans,bt)
bHP://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版)·修订版

以上是关于Python的序列Ⅱ的主要内容,如果未能解决你的问题,请参考以下文章

Python 元组Ⅱ

好用的内置模块Ⅱ

Python 函数Ⅱ

Python SMTP发送邮件Ⅱ

字符串Ⅱ

字符串Ⅱ