Python基础:Python数据类型详解之字典与字符串
2017-03-05 23:30
1036 查看
字符串
字符串也是不改变的,具体方法如下:name.capitalize() #首字母大写 name.casefold() #大写全部变小写 >>> name='bolen' >>> name.capitalize() 'Bolen' >>> name.casefold() 'bolen' name.center() #定义宽度和添加的字符 >>> name.center(50,'=') '======================bolen=======================' name.count('bo') 统计 bo出现次数 name.encode() 将字符串编码成bytes格式 >>> new=name.encode() >>> type(new) <class 'bytes'> name.endswith("en") 判断字符串是否以 en结尾 >>> 'Bolen\tZhang'.expandtabs(4) 'Bolen Zhang 将\t转换成多长的空格 name.find('A') 查找A,找到返回其索引, 找不到返回-1 format : >>> msg = "my name is {}, and age is {}" >>> msg.format("bolen",32) 'my name is bolen, and age is 32' >>> msg = "my name is {1}, and age is {0}" >>> msg.format("bolen",32) 'my name is 32, and age is bolen' >>> msg = "my name is {name}, and age is {age}" >>> msg.format(age=32,name="bolen") 'my name is ale, and age is 22' format_map >>> msg.format_map({'name':'alex','age':22}) 'my name is alex, and age is 22' #输入字典 msg.index('a') 返回a所在字符串的索引 >>> 'adf9'.isalnum() True >>> '9'.isalnum() True >>> '9'.isdigit() 是否整数 name.isnumeric name.isprintable name.isspace name.istitle >>> name.title() 'Bo Le Na' >>> name1=name.title() >>> name1 'Bo Le Na' >>> name1.istitle() True name.isupper "|".join(['alex','jack','rain']) 'alex|jack|rain' maketrans >>> intab = "aeiou" #This is the string having actual characters. >>> outtab = "12345" #This is the string having corresponding mapping character >>> trantab = str.maketrans(intab, outtab) #先自己制作转换关系表。 >>> str = "this is string example" >>> str.translate(trantab) 'th3s 3s str3ng 2x1mpl2' msg.partition('is') 输出 ('my name ', 'is', ' {name}, and age is {age}') >>> "alex li, chinese name is lijie".replace("li","LI",1) 'alex LI, chinese name is lijie' msg.swapcase 大小写互换 >>> msg.zfill(40) > """方法返回指定长度的字符串,原字符串右对齐,前面填充0。""" '00000my name is {name}, and age is {age}' >>> 'Hello world'.ljust(20,"-") 'Hello world---------' >>> 'Hello world'.rjust(20,"*") '*********Hello world' name_define='tWst@123' >>> name_define.isidentifier() False #检测一段字符串可否被当作标志符,即是否符合变量命名规则 def strip(self, chars=None): """ 移除两端空白 """ >>> name=' bole ' >>> name ' bole ' >>> name.strip() 'bole'
字典
字典是键值对的无序集合,且key不能重复。定义
>>> userdb {'user002': 'kobe', 'user003': 'kity', 'user001': 'bolen', 'user004': 'tom'}
增加
>>> userdb['user005']='baby' >>> userdb {'user002': 'kobe', 'user003': 'kity', 'user001': 'bolen', 'user004': 'tom', 'user005': 'baby'}
修改
>>> userdb['user005']='angela' >>> userdb {'user002': 'kobe', 'user003': 'kity', 'user001': 'bolen', 'user004': 'tom', 'user005': 'angela'}
删除
字典的删除有三种方式:pop,del和popitem,其中前两种较常用。最后一种由于是随机删除元素的,一般来说并没什么卵用。 >>> userdb.pop('user003') 'kity' >>> userdb {'user002': 'kobe', 'user001': 'bolen', 'user004': 'tom', 'user005': 'angela'} >>> del userdb['user004'] >>> userdb {'user002': 'kobe', 'user001': 'bolen', 'user005': 'angela'} >>> userdb.popitem() ('user002', 'kobe') >>>
查找
>>> >>> 'user002' in userdb #标准用法 True >>> userdb.get('user004') 'tom' >>> userdb['user004'] 'tom' >>> userdb.get('user005')#注意get不到key就没返回值,而下面的取法,get不到key就会报错。 >>> userdb['user005'] Traceback (most recent call last): File "<pyshell#165>", line 1, in <module> userdb['user005'] KeyError: 'user005' >>>
多级嵌套
av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] }, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] } } av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来" print(av_catalog["大陆"]["1024"]) #ouput ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
其他
#获取keys >>> userdb.keys() dict_keys(['user002', 'user003', 'user001', 'user004']) #获取values >>> userdb.values() dict_values(['kobe', 'kity', 'bolen', 'tom']) #设置默认值,注意此方法是新加,不可修改。 >>> userdb {'user002': 'kobe', 'user003': 'kity', 'user001': 'bolen', 'user006': '希特勒', 'user004': 'tom'} >>> userdb.setdefault('user006','bolenzhang') '希特勒' >>> userdb.setdefault('user006','bolenzhang') '希特勒' >>> userdb {'user002': 'kobe', 'user003': 'kity', 'user001': 'bolen', 'user006': '希特勒', 'user004': 'tom'} >>> userdb.setdefault('user001','bolenzhang') 'bolen' >>> userdb {'user002': 'kobe', 'user003': 'kity', 'user001': 'bolen', 'user006': '希特勒', 'user004': 'tom'} #update >>> newb={'user110':'michal',9:6,1:1} >>> newb {9: 6, 'user110': 'michal', 1: 1} >>> userdb.update(newb) >>> userdb {1: 1, 'user001': 'bolen', 'user003': 'kity', 'user006': 'xitele', 'user004': 'tom', 9: 6, 'user002': 'kobe', 'user110': 'michal'} #获取items >>> userdb.items() dict_items([(1, 1), ('user001', 'bolen'), ('user003', 'kity'), ('user006', 'xitele'), ('user004', 'tom'), (9, 6), ('user002', 'kobe'), ('user110', 'michal')]) #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个 >>> dict.fromkeys([1,2,3],'test') {1: 'test', 2: 'test', 3: 'test'}
字典的循环
#方法1 >>> for key in userdb: print(userdb[key]) 1 bolen kity xitele tom 6 kobe michal >>> userdb {1: 1, 'user001': 'bolen', 'user003': 'kity', 'user006': 'xitele', 'user004': 'tom', 9: 6, 'user002': 'kobe', 'user110': 'michal'} #方法2 >>> for k,v in userdb.items(): print (k,v) 1 1 user001 bolen user003 kity user006 xitele user004 tom 9 6 user002 kobe user110 michal
集合
集合是一个无序的,不重复的数据组合,它的主要作用如下:1、去重,把一个列表变成集合,就自动去重了
2、关系测试,测试两组数据之前的交集、差集、并集等关系
# 去重 >>> b=[1,1,2,3,4,4] >>> s = set(b) >>> s {1, 2, 3, 4} s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 使用remove()可以删除一项: t.remove('H') len(s) set 的长度 x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员 s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制
相关文章推荐
- Python基础——原生数据类型(字典,列表,元组,字符串)
- python基础数据类型及内置容器详解
- Python基础(3) - 数据类型:2字符串类型
- Python数据类型详解(四)字典:dict
- Python新手学习基础之数据类型——字符串类型
- Python新手学习基础之数据类型——字符串类型
- Python基础——核心数据类型_序列_字符串
- iOS讲解迷惑--Swift基础(数据类型, 字符串, 数组, 字典 )
- Python基础4:数据类型:数字 字符串 日期
- Python新手学习基础之数据类型——字符串的切片截取
- Python数据类型详解(四)字典:dict
- OC基础数据类型之字符串,数组和字典
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- Python基础学习----数据类型,字符串,内置数据结构
- 【python】 [基础] 数据类型,字符串和编码
- Python数据类型详解(一)字符串
- Python数据类型详解(列表,元组,字典,日期)
- Python基础:1.数据类型(空、布尔类型、整型、长整型、浮点型、字符串)
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- Python新手学习基础之数据类型——字符串类型