zoukankan      html  css  js  c++  java
  • python字符串,列表,字符串,元组,集合的一些方法

    字符串方法

    1 __contains__       #等同in
    2 
    3 name = 'erroy'
    4 result = name.__contains__('er')   #判断元素是否包含er
    5 print(result)
    6 
    7 True    #结果

    __divmod__  #求网页的分页情况应该划分多少

    1 all_item=95
    2 result =all_item.__divmod__(10)
    3 print(result)
    4 
    5 (9, 5)  #结果

    capitalize()   #首字母大写

    1 name ='eric'
    2 result=name.capitalize()
    3 print(result)
    4 
    5 Eric  #结果

    center()    #居中

    1 name='123'
    2 result=name.center(20,',')
    3 print(result)
    4 
    5 ,,,,,,,,123,,,,,,,,,   #结果

    count()     #判断一个元素出现在字符串里几次

    1 name='asdasasfasd'
    2 result = name.count('d')
    3 print(result)
    4     
    5 2       #结果

    encode()    #字符编码转换

    1 name ='asdasd'
    2 result = name.encode('gbk')
    3 print(result)
    4 
    5 b'asdasd'   #结果

    endswith()  #判断是不是以什么结尾的

     1 name = 'asdasdfe'
     2 result = name.endswith('e')
     3 print(result)
     4 
     5 True    #结果
     6 
     7 result = name.endswith('e',0,3)  #判断是不是这个区间结尾的。
     8 print(result)
     9 
    10 False   #结果

    startswith()    #判断是不是什么开头

    1 name='alex'
    2 if name.startswith('a'):
    3     print('yes')
    4 yes

    expandtabs()    #把tab转换成空格

    1 name = 'a	les'
    2 result = name.expandtabs(tabsize=30)    #可以指定转换成多少空格不常用
    3 print(result)   
    4 
    5 a                             les   #结果

    find()      #查找返回元素的索引值

    1 name = 'alex'
    2 result = name.find('x')
    3 print(result)
    4 print(name[name.find('name'):])
    5 
    6 3       #结果
    7 x

    format()    #格式化字符

     1 name ='alex{0} as id{1}'
     2 result = name.format('sb','eric')
     3 print(result)
     4 
     5 alexsb as ideric  #结果
     6 
     7 name = 'alex{name}as{id}'
     8 result = name.format(name='sb',id='eric')
     9 print(result)
    10 
    11 alexsbaseric  #结果

    index()     #查找元素的索引值,不存就报错,返回布尔值

    1 name = 'asexdsaex'
    2 result = name.index('ex')
    3 print(result)
    4 
    5 2   #结果

    isalnum()   #判断是不是阿拉伯数字或字母,返回布尔值

    1 print('abc123'.isalnum())
    2 
    3 Treu        #结果

    isalpha()   #判断是不是英文字符,返回布尔值

    1 print('abA'.isalpha())
    2 
    3 True    #判断结果

    isdecimal()     #判断是不是10进制数

    1 print('11a'.isdecimal())
    2 
    3 False   #结果

    isdigit()       #判断是不是数字

    1 name = '123'
    2 print(name.isdigit())
    3 if"123".isdigit():
    4     print('1A'.isdigit())
    5 
    6 True    #结果
    7 False

    isspace()       #判断是不是空格,完全是空格才是真

    1 print(' 1'.isspace())  
    2 
    3 False   #结果

    istitle()   #判断是不是标题

    1 print('My  name s '.istitle())
    2 
    3 False   #结果

    isupper()   #判断是不是全部是大写

    1 print('MY NAME IS'.isupper())
    2 
    3 True    #结果

    join()  #拼接

    1 li = ['s','a','e','x']
    2 result=''.join(li)  #双引号之间可以设置想要用什么相隔开
    3 print(result)
    4 
    5 saex    #结果

    lower()     #将字母变小写

    1 print('AAA'.lower())
    2 
    3 aaa     #结果

    upper()     #讲字母变大写

    1 print('aaa'.upper())
    2 
    3 AAA     #结果

    strip()     #去掉两边空格,包括换行符和tab

    1 print(' alex
    '.strip())
    2 
    3 alex    #结果

    maketrans()     #起到对应关系的作用

     1 intab = 'aeiou'
     2 outtab = '12345'
     3 trantab = str.maketrans(intab,outtab)
     4 print(trantab)
     5 p = str.maketrans('abcdef','123456')
     6 print(p)
     7 print('alex li'.translate(p))
     8 
     9 
    10 {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}    #结果
    11 {97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54}
    12 1l5x li

    partition() #分割

    1 name = 'alexissb'
    2 result = name.partition('is')
    3 print(result)
    4 
    5 ('alex', 'is', 'sb')    #结果

    replace()   #替换元素

    1 name='alexissb'
    2 result=name.replace('a','o',1)
    3 print(result)
    4 
    5 olexissb    #结果

    rfind()     #从左往右找,找到最右边的下标

    1 name='aaaa'
    2 print(name.rfind('a'))
    3 
    4 3   #结果

    rindex()    #从右开始找元素,没有就报错

    1 name='aaaa'
    2 print(name.rindex('a'))
    3 
    4 3        #结果

    split()  #指定分隔符切割

    1 t=('1+2+3+4'.split('+'))  #会分割成列表
    2 print(t,type(t))
    3 
    4 ['1', '2', '3', '4'] <class 'list'>    #结果

    splitlines() #根据换行符分割,能帮你识别windows下的换行符和linux下的换行符,会切割成列表

    1 print('1+2
    +3+4'.splitlines())
    2 ['1+2', '+3+4']        #结果

    swapcase()  #大小写转换

    1 print('Alex Li'.swapcase())
    2 aLEX lI    #结果

    list 列表的方法

    copy()    #拷贝

     1 names = ['4ZhangYang','#1Gunyun','xXiangPeng',["alex","jack"],'ChenRonghua']
     2 name2 = names.copy()
     3 print(names)
     4 print(name2)
     5 names[2] = "向鹏"
     6 names[3][0] = "alexder"
     7 print(names)
     8 print(name2)   #第二层列表会复制一份内存地址
     9 print(names[0:-1:2])
    10 for i in names:
    11     print(i)
    12 如果列表等于列表,那都引入一个内存地址
    13 
    14 如果想改变下,可以引入深copy
    15 import copy
    16 names = ['4ZhangYang','#1Gunyun','xXiangPeng',["alex","jack"],'ChenRonghua']
    17 name2 = copy.deepcopy(names)
    18 
    19 在深copy中修改,就属于完全独立出来的copy,会在内存中再次开辟空间
    20 
    21 
    22 浅copy的作用,可以用来创建联合帐号
    23 import copy
    24 person = ["name",['saving',100]]
    25 p1 = person[:]
    26 #p2 = person.copy()  #浅copy的三种方法
    27 p2 = list(person)
    28 print(p1)
    29 print(p2)
    30 
    31 p1[1][1]=50
    32 print(p1)
    33 print(p2)
    View Code

    pop()    #默认移除最后一个,会有返回值

    1 li=['alex','seven']
    2 lis=li.pop()
    3 print(li,lis)
    4 ['alex'] seven    #结果

    clear()    #清空列表,只剩None空值

    1 li=['alex','seven']
    2 print(li.clear())
    3 None

    extend()    #扩展列表,更改原列表

    1 li=['alex','seven']
    2 li.extend([11,22,33])
    3 print(li)
    4 ['alex', 'seven', 11, 22, 33]

    remove()    #移除指定元素

    1 li=['alex','seven']
    2 li.remove('alex')
    3 print(li)
    4 ['seven']

    reverse()    #反转

    1 li=['alex','seven']
    2 li.reverse()
    3 print(li)
    4 ['seven', 'alex']

    sort()    #排序

    1 li = [2,6,8,4,9,1]
    2 li.sort()
    3 print(li)
    4 [1, 2, 4, 6, 8, 9]

    count()    #统计元素出现的次数

    1 li = [2,6,8,4,9,1]
    2 print(li.count(2))
    3 1

    append()    #追加元素进列表

    1 li = [2,6,8,4,9,1]
    2 li.append(2)
    3 print(li)
    4 [2, 6, 8, 4, 9, 1, 2]

    元祖的方法和列表方法大抵相同,除了少了修改的操作,和index()、count()等方法。但元组可以在映射(和集合的成员)中当键使用——而列表不行。元组作为很多内建函数和方法的返回值,所以你必须对元组进行处理,只要不尝试修改,你都能当做列表来修改。

    字典

    字典的常用操作

    len(dic)  #返回dic项中(键值对)的数量

    dic[k]    #返回关联到键K上的值:

    dic[k]=v    #将值v关联到键为k的项

    del d[k]    #删除键为k的项:

    k in d    #检查d中是否有含有键为k的项

    clear()    #清除字典在内存中的引用

    1 x={}
    2 y=x
    3 x['key']='value'
    4 x.clear()
    5 print(y)
    6 {}

    fromakeys()    #用来将同一个value赋值给不同的key,这是一个浅copy

    1 dic=dict(k1='v1',k2='v2')
    2 new_dict=dic.fromkeys(['k1','k2'],'v1')
    3 print(new_dict)
    4 {'k1': 'v1', 'k2': 'v2'}

    用来查找字典元素的最合适的方法

    get()    #打开字典查找元素,如果没有会返回一个None的空值,也能指定返回的值

    1 dic=dict(k1='v1',k2='v2')
    2 {'k1': 'v1', 'k2': 'v2'}
    3 dic={'k1':'v1','k2':'v2'}
    4 print(dic.get('k1'))
    5 print(dic.get('k3','alex'))
    6 v1
    7 alex

    keys()    #返回所有的key

    1 dic=dict(k1='v1',k2='v2')
    2 print(dic.keys())
    3 dict_keys(['k1', 'k2'])

    values()    #返回所有的value

    1 dic=dict(k1='v1',k2='v2')
    2 print(dic.values())
    3 dict_values(['v1', 'v2'])

    items()    #返回所有的key和value

    1 dic=dict(k1='v1',k2='v2')
    2 print(dic.items())
    3 dict_items([('k1', 'v1'), ('k2', 'v2')])

    pop()    #移除一个元素,有返回值,在这里必须指定元素移除

    1 dic=dict(k1='v1',k2='v2')
    2 print(dic.pop('k1'))
    3 v1

    popoitem()    #无须的移除元素

    #交互模式下的测试
    1
    dic=dict(k1='v1',k2='v2',k3='v3',k4='v4',k5=5) 2 dic.popitem() 3 ('k3', 'v3') 4 dic.popitem() 5 ('k2', 'v2') 6 dic.popitem() 7 ('k1', 'v1') 8 dic.popitem() 9 ('k5', 5)

    update()    #用来合并字典,如果key相同,当值有更新的时候,会去更新字典

    1 dic=dict(k1='v1',k2='v2')
    2 dicb = dict(v1='k1',v2='k2',k1='v3')
    3 dic.update(dicb)
    4 print(dic)
    5 {'k1': 'v3', 'k2': 'v2', 'v1': 'k1', 'v2': 'k2'}

    setdefault()    #增加元素,如果元素以存在取消操作,再返回字典。如果不存在则更新字典,可更新键和value

     1 dic=dict(k1='v1',k2='v2')
     2 print(dic.setdefault('k1',{'k1':'v2'}))
     3 print(dic.setdefault('k3',{'k3','v3'}))
     4 print(dic)
     5 print(dic.setdefault('k4','alex'))
     6 print(dic)
     7 v1
     8 {'v3', 'k3'}
     9 {'k1': 'v1', 'k2': 'v2', 'k3': {'v3', 'k3'}}
    10 alex
    11 {'k1': 'v1', 'k2': 'v2', 'k3': {'v3', 'k3'}, 'k4': 'alex'}

    set集合  set是一个无须且不重复的元素集合,还可以做关系测试

    1 s1 = set()
    2 s1.add('alex')
    3 s2=set(['alex','eric','tony','alex'])   #创建集合,自动转换列表成set类型
    4 print(s2)
    5 s3 = s2.difference(['alex','eric'])     #找到两个集合不同的,然后将不同的元素集合起来创建的集合
    6 print(s3)
    7 {'tony', 'alex', 'eric'}
    8 {'tony'}

    discard()  #和remove道理差不多区别是需要他指定一个元素移除,更新集合

    1 s2=set(['alex','eric','tony'])   #创建集合,自动转换列表成set类型
    2 print(s2)
    3 s2.discard('alex')
    4 print(s2)
    5 {'eric', 'tony', 'alex'}
    6 {'eric', 'tony'}
    difference()  #取差集,列表1里有的,列表2里没有的给取出来
    1 s1=set(['alex','eric','tony'])  
    2 s2=set([1,2,3,4,5])
    3 print(s1.difference(s2))
    4 {'tony', 'eric', 'alex'}
    intersection()    #取交集 ,新创建一个set
    1 list_1 = [1,4,5,6,3,6,7,9]
    2 list_1 = set(list_1)
    3 list_2 = set([2,6,0,66,22,8,4])
    4 print(list_1.intersection(list_2))  #取交集
    5 {4, 6}
    intersection_update()    #取交集,修改原来的set
    1 s4=s2.difference_update(['alex','eric'])    #传入什么元素就删除什么元素,更新本身的元素
    2 print(s2)
    3 print(s4)
    4 set(['tony', 'alex', 'eric'])
    5 set(['tony'])
    6 None
    7 例二:
    8 print(list_1 & list_2)
    union()    #取并集
    1 print(list_1.union(list_2))         #取并集 
    2 {0, 1, 2, 3, 4, 5, 6, 7, 66, 9, 8, 22}
    3 print(list_2 | list_1)
    update() #添加多个元素
    1 list_1.update([888,777,555])
    2 print(list_1)
    3 {1, 3, 4, 5, 6, 7, 9, 777, 555, 888}
    isdisjoint() #如果没有交集,返回true
    1 list_1  = [1,4,5,6,3,7,9]
    2 list_1=set(list_1)
    3 list_2 = set([2,6,0,66,22,8,4])
    4 print(list_1.isdisjoint(list_2))
    5 False
    issubset() #是否是子集
    1 list_1 = [1,4,5,6,3,7,9]
    2
    list_1=set(list_1) 3 list_3 = set([1,4,7]) 4 print(list_3.issubset(list_1)) 5 True
    issuperset() #是否是父集
    1 print(list_1.issuperset(list_3))
    2 True
    .symmetric_difference() #对称差集
    1 print(list_1.symmetric_difference(list_2))
    2 {0, 1, 2, 66, 3, 5, 8, 7, 9, 22}
    3 例二:
    4 print(list_1 ^ list_2)
    isdisjoint() #判断是否是相交集,返回bool值
    pop() #取出一个元素,并返回
    remove() #需要给一个参数,没有返回值
     
  • 相关阅读:
    与非
    抄卡组
    数据结构》关于差分约束的两三事(BZOJ2330)
    刷题向》图论》BZOJ1179 关于tarjan和SPFA的15秒(normal)
    图论算法》关于tarjan算法两三事
    图论算法》关于SPFA和Dijkstra算法的两三事
    刷题向》DP》值得一做》关于对DP问题的充分考虑(normal)
    数据结构》关于线段树两三事(新手向)(工具向)
    图论算法》关于匈牙利算法的两三事
    关于羊和车的问题
  • 原文地址:https://www.cnblogs.com/songcheng/p/6930503.html
Copyright © 2011-2022 走看看