Python基础:Python数据类型详解之字典与字符串

来源:互联网 发布:js获取当前url参数 编辑:程序博客网 时间:2024/05/18 21:09

字符串

字符串也是不改变的,具体方法如下:

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.isprintablename.isspacename.istitle>>> name.title()'Bo Le Na'>>> name1=name.title()>>> name1'Bo Le Na'>>> name1.istitle()Truename.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])1bolenkityxiteletom6kobemichal>>> 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 1user001 bolenuser003 kityuser006 xiteleuser004 tom9 6user002 kobeuser110 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”的一个浅复制
0 0
原创粉丝点击