python字典、字符串常用方法
字典、字符串常用方法,枚举,range
字典的通过键值对组成
字典的创建
#第一种创建方法
#dic={'k1':'v1','k2:':'v2'}
#第二种方法创建字典
#dic=dict(k1='v1',k2='v2')#这样创造的字典的键都是字符串类型
#第三种方法创建字典
# dic=dict([('k1','v1'),('k2','v2')])
#第四种方法创建字典
# dic={k:v for k,v in [('k1','v1'),('k2','v2'),('k3','v3')]}
# print(dic)
#第五种方法
dic=dict.fromkeys('abcd',[1,2,3,4])
print(dic)#{'a': [1, 2, 3, 4], 'b': [1, 2, 3, 4], 'c': [1, 2, 3, 4], 'd': [1, 2, 3, 4]}
字典的增、改
dic={'k1':'v1','k2:':'v2'}
dic['k3']='v3'
print(dic)#{'k1': 'v1', 'k2:': 'v2', 'k3': 'v3'}
dic.update(k4='v4')
print(dic)#{'k1': 'v1', 'k2:': 'v2', 'k3': 'v3', 'k4': 'v4'}
dic.setdefault('k5','v5')#{'k1': 'v1', 'k2:': 'v2', 'k3': 'v3', 'k4': 'v4', 'k5': 'v5'}
print(dic)
print(dic.setdefault('k1'))#v1
update特点是有则覆盖,无则增加update键值是等号
setdefault是有则不变,无则增加,set键值是逗号,set有返回值
字典的删除
pop
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
dic.pop('k1')#必须加引号,以键删除
print(dic)
pop有返回值,返回要删除的键对应的值(这里返回1),同时pop可以设置返回值,如果没有对应的键就返回设置的值
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
ret=dic.pop('k5',-1)
print(ret)#-1
popitem
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
print(dic.popitem())#('k4', 'v4')
popitem:删除字典最后一个元素,并以元组返回
clear
#clear 清空字典
dic = {'name': '太白', 'age': 18}
dic.clear()
print(dic) # {}
del
# del
# 通过键删除键值对
dic = {'name': '太白', 'age': 18}
del dic['name']
print(dic) # {'age': 18}
#删除整个字典
del dic
字典的查找
直接法,通过键获取对应的值
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
print(dic["k1"])
用get方法,get方法有返回值,就是键对应的值,同时还可以设置返回值
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
print(dic.get('k2'))#v2
print(dic.get('b5','没有此键'))#没有此键
用key方法,返回一个特殊的对象,里面包含所有的键
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
print(dic.keys())#dict_keys(['k1', 'k2', 'k3', 'k4'])
print(list(dic.keys()))#['k1', 'k2', 'k3', 'k4']
用values方法,返回一个特殊的对象,里面包含所有的值
dic=dict(k1=1,k2='v2',k3='v3',k4='v4')
print(dic.values())#dict_values([1, 'v2', 'v3', 'v4'])
print(list(dic.values()))#[1, 'v2', 'v3', 'v4']
items方法,返回一个特殊的对象,里面包含所有的键值对
dic = {'name': '太白', 'age': 18}
print(dic.items()) # dict_items([('name', '太白'), ('age', 18)])
dic = {'name':'太白','age':18,'sex':'man'}
for k,v in dic.items():
print(k,v)
字符串
凡是用引号引起来的都是字符串
字符串可以通过索引取值,也可以通过步长取值
st='alexisbigman'
x=st[0]
print(x)#a
步长取值特点是左闭右开
st='alexisbigman'
x2=st[0:3:2]#0代表起始位置的下标,3代表终止位置的下标
print(x2)#ae
upper方法:所有字母变大写
st='alexisbigman'
s1=st.upper()
print(s1)
strip方法:去掉字符串末尾的空格或者
st='alexisbigman '
s1=st.strip()
print(s1)
format方法,来格式化输出字符串,格式化输出有三种方式
class Car:
def __init__(self, color, pai, kind):
self.color = color
self.pai = pai
self.kind = kind
def run(self):
print('{} run in {}' .format(self.pai,self.color))
def transfer(self):
print('%s transfer' % self.color)
def move(self):
print(f'{self.pai} move')
bmd=Car('gareen','1111','yueye')
bmd.run()
bmd.transfer()
bmd.move()
1111 run in gareen
gareen transfer
1111 move
replace
S.replace(old, new[, count])
将字符串中的子串old替换为new字符串,如果给定count,则表示只替换前count个old子串。如果S中搜索不到子串old,则无法替换,直接返回字符串S(不创建新字符串对象)。
print('abcxyzoxy'.replace('xy','XY'))
abcXYzoXY
print('abcxyzoxy'.replace('xy','XY',1))
abcXYzoxy
print('abcxyzoxy'.replace('mn','XY',1))
abcxyzoxy
center
S.center(width[, fillchar])
用于将字符串居中,左右两边使用fillchar进行填充,使得整个字符串的长度为width。fillchar默认为空格。如果width小于字符串的长度,则无法填充直接返回字符串本身(不会创建新字符串对象)。
split
split()根据sep对S进行分割,maxsplit用于指定分割次数,如果不指定maxsplit或者给定值为"-1",则会从左向右搜索并且每遇到sep一次就分割直到搜索完字符串。如果不指定sep或者指定为None,则改变分割算法:以空格为分隔符,且将连续的空白压缩为一个空格。返回一个列表
join
S.join(iterable)将可迭代对象(iterable)中的元素使用S连接起来。注意,iterable中必须全部是字符串类型,否则报错。
swapcase
swapcase()对S中的所有字符串做大小写转换(大写-->小写,小写-->大写)。
s='Alex Eat'
print(s.swapcase())#aLEX eAT
title、capitalize
title返回字符串所有单词首字母大写且小写其他字母的格式
capitalize返回首字母大写、其他字母全部小写的新字符串
s='alex eat'
print(s.title())#Alex Eat
print(s.capitalize())#Alex eat
enumerate,range
enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引加对应的元素的元组,利用它可以同时获得索引和值。
li = ['alex','银角','女神','egon','太白']
for i in enumerate(li):
print(i)
(0, 'alex')
(1, '银角')
(2, '女神')
(3, 'egon')
(4, '太白')
li = ['alex','银角','女神','egon','太白']
for index,name in enumerate(li,1):
print(index,name)
1 alex
2 银角
3 女神
4 egon
5 太白
li = ['alex','银角','女神','egon','太白']
for index, name in enumerate(li, 100): # 起始位置默认是0,可更改
print(index, name)
100 alex
101 银角
102 女神
103 egon
104 太白
range:指定范围,生成范围内的数字,左闭右开
for i in range(1,5):
print(i)
1
2
3
4
还可以设置步长
for i in range(1,6,2):
print(i)
1
3
5
还可以反向设置步长
for i in range(6,1,-2):
print(i)
6
4
2

浙公网安备 33010602011771号