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

posted @ 2025-03-14 21:41  Randy_xun  阅读(25)  评论(0)    收藏  举报