python字符串、列表、元组、字典、集合常用方法

字符串

去空格

s = '\n   a  bc    \n'
print(s.strip()) # 去掉字符串两边的空格和换行符
print(s.rstrip())# 只去掉右边的空格和换行符
print(s.lstrip()) # 只去掉左边的空格和换行符

替换

print(s.replace('a','A')) # 替换,将字符串中含有a的字符都替换为A
print(s.replace(' ','')) # 去中间空格,该方法可以替换中间的空格,将空格替换为空

找下标

# 两种写法,推荐使用第二种
print(s1.index('o')) # 如果下标不存在,报错ValueError: substring not found。不推荐使用
print(s1.find('5')) # 如果下标不存在,返回-1。推荐使用

判断开头结尾

# 检查字符串是否以指定前缀开头
print(s1.startswith('q')) # 判断开头
# 检查字符串是否以指定后缀结尾
print(s1.endswith('.jpg')) # 判断结尾

统计次数和长度

print(s1.count('c'))# 找某个字符出现的次数
print(len(s1)) # 统计字符串的长度

设置等长/前面补0

print(s1.center(50,'*'))# 设置等长为50,若不足50用指定字符在两边填充
print(s4.zfill(5))# 前面补0,这里设置的5为补0后的总长度(该方法仅支持字符串类型)

大小写转换

print(s1.upper())# 把所有的字母都变成大写
print(s1.lower())# 把所有的字母都变成小写
print(s1.capitalize())# 把首字符变为大写
print(s1.title()) # 把每个单词的首字母变为大写

判断字符串类型

s2 = 'A!TD22. 3'
s3 = 'ss22单独'
s4 = '123'

#判断字符格式
print(s2.isupper())# 出现的字母,是不是都是大写字母
print(s2.islower())# 出现的字母,是不是都是小写字母
print(s3.isalpha())# 是字母或汉字,返回True
print(s3.isalnum())# 只有数字或者字母或汉字会返回True,其他的都返回False
print(s3.isascii())# 检查字符串是否仅包含 ASCII 字符集中的字符

# 判断是否是数字
s = "⅔12345²"
print(s.isdecimal())  # 检查字符串是否只包含十进制数字字符(0 到 9)
print(s.isdigit())    # 检查字符串是否只包含数字字符,包括除十进制数字外的其他数字形式,如上标、下标等
print(s.isnumeric())  # 它是最宽泛的数字检查方法,它不仅包括数字字符,还包括其他数字形式,如分数、上标、下标等。

分割/连接字符串

# 将字符串按照指定分隔符分割成子字符串,并返回一个列表
stus = 'xiaoming,xiaohei,xiaobai,xiaojun'
print(stus.split(',')) # 并不一定要用逗号,自己指定什么都可以(要和上边用的符号一样),默认什么都不写的话就用空格分割
print(type(stus)) # <class 'str'>

# 将可迭代对象中的字符串连接起来,使用当前字符串作为连接符
l = ['xiaoming', 'xiaohei', 'xiaobai', 'xiaojun']
print(','.join(l)) # 把list里面的每一个元素通过指定的字符串(逗号或空格或点等符号都可以)连接起来
print(type(l)) # <class 'list'>

字符串格式化

# format方法和format_map方法是做字符串格式化的,用{}占位,区别在于format_map方法传的是字典格式。同%s,两种都是做字符串格式化,用哪个都可以,数据多的时候推荐用该方法
s5 = '今天是{},欢迎{}登录'
print(s5.format('2020-04-08','xiyang'))
# 举例
s6 = 'insert into stu(id,name,email,phone,addr) value({id},{name},{email},{phone},{addr})'
# .format{}方法,直接在可变的值中定义好名字,传值时不需要按顺序传值,也可以正确插入
print(s6.format(phone = '17611111111',name = 'xiyang',id = 1,email = '133@qq.com',addr = '北京市'))
# .format_map
print(s6.format_map({'phone':'17611111111','name':'xiyang','id':1,'email':'133@qq.com','addr':'北京市'}))

# 演示三种写法(%s、format、format_map)的区别
s6 = 'insert into stu(id,name,email,phone,addr) value({id},{name},{email},{phone},{addr})'
id = input('请输入id:')
name = input('请输入name:')
phone = input('请输入phone:')
addr = input('请输入addr:')
email = input('请输入email:')

#  %s方式
print('insert into stu(id,name,email,phone,addr) value(%s,%s,%s,%s,%s)' % (phone,id,addr,name,email))
#  format方式
print(s6.format(phone=phone,addr=addr,id=id,name=name,email=email))
#  format_map方式
print(s6.format_map({'phone':phone,'name':name,'id':id,'email':email,'addr':addr}))
#  结论:%s的方式,当数据多时,如果顺序传混了,那么存值也就存混了,如id在前方,我传了phone在前方,系统就会把我输入的phone的值,放到id中

列表

添加元素的三种方式

# 在列表末尾添加一个元素
l.append('china')

# 指定未知添加一个元素,如果指定的位置不存在,会在末尾添加
l.insert(99,'23')

# 将可迭代对象中的元素逐一添加到列表中,如列表 字符串 元组 集合 文件对象 生成器 迭代器等
l = ['猕猴桃', '哈密瓜', '榴莲', '山竹','杨桃']
l2 = ['樱桃','梨']
l.extend(l2) # 列表
l.extend(['苹果']) # 列表
l.extend('橘子') # 字符串
l.extend(('桃子','牛奶')) # 元组
l.extend({'可口可乐':'红色','雪碧':'绿色'}) # 字典
print(l) # ['猕猴桃', '哈密瓜', '榴莲', '山竹', '杨桃', '樱桃', '梨', '苹果', '橘', '子', '桃子', '牛奶', '可口可乐', '雪碧']

获取元素

list = [123,1.56,'python','java','!@#']

# 通过索引获取单个元素
print(list) # 输出完整的列表,即[123, 1.56, 'python','java','!@#']
print(list[0]) # 输出第一个元素,即123
print(list[-1]) # 输出倒数第一个元素

# 通过切片获取多个元素--前包后不包
print(list[1:4]) # 输出从第二个元素开始,到第四个元素,即[1.56, 'python', 'java']
print(list[2:]) # 输出从第三个元素(第二个下标)开始的所有元素,即['python','java','!@#']
print(list[:-3]) # 输出倒数第三个元素之前的所有元素,即[123, 1.56]
print(list * 2) # 输出两次列表,即[123, 1.56, 'python','java','!@#', 123, 1.56, 'python','java','!@#']

# 通过步长取值
print(list[::3]) # 输出列表中的所有元素,每间隔3个步长取一个 

获取元素出现的次数/个数/索引

l = ['23','abc','DEF','哈喽','!@#','2.3','DEF']
# 返回元素在列表中出现的次数
print(l.count('23'))

# 返回列表中元素的个数
print(len(l))

# 返回列表中传入元素的索引,没有则报错,有多个则返回第一个位置的索引
print(l.index('DEF'))

修改元素

# 修改单个元素
my_list = [1, 2, 3, 4, 5,6,7,8,9,10]
my_list[1] = 'hello'
print(my_list)

# 修改多个元素(替换多个元素)
my_list[5:7] = [20, 30]
print(my_list)

# 将索引为3及之后的元素替换为40, 50, 60
my_list[3:] = [40, 50, 60]
print(my_list)

排序的三种方式

# 将列表中的元素反转
l.reverse()

# 对列表中的数据正序排列(不会返回新的列表)
l.sort()

# 对列表中的数据倒序排列
l.sort(reverse=True)

删除元素的三种方式

l = ['23','abc','DEF','哈喽','!@#','2.3','DEF']
# 移除列表中第一个值为x的元素,如果没有则会报错
l.remove('DEF')
print(l)

# 移除指定索引的元素,并返回被移除的元素;如果传入不存在的索引则报错;如果未传入索引,则移除列表中最后一个元素
print(l.pop(0))
print(l.pop())
print(l)


# 删除索引为1的元素,如果传入不存在的索引则报错
del l[1]
# 删除整个列表
del l

元组

在Python中,元组是不可变的序列,意味着一旦创建就不能修改。因此,元组没有像列表那样丰富的方法,但仍然有一些常用的方法可以操作元组

# 元组(tuple)--也是一个list,跟list的区别是它不能修改。中括号是list,小括号是元组
t = ('192.168.0.114','root','123456',3306) # 一些不想让别人修改的数据,就定义为元组,例如数据库的ip、端口、用户、密码

# 定义两个元组
t1 = (1,2,3)
t2 = (4,5,6)
# 获取元素
print(t2[2])
print(t2[:2])

# 元组拼接
new_t = t1 + t2
print(new_t)

# 元组解包
a,b,c = t1
print(a,b,c)

# 元素出现的次数/元素第一次出现的索引
print(t2.count(5))
print(t2.index(6))

字典

字典是一种无序的数据结构,用于存储键-值对。字典提供了许多方法来操作和处理键值对数据。以下是一些常用的字典方法:

创建

# 创建字典的两种方式
my_dict = {'a': 1, 'b': 2, 'c': 3}
another_dict = dict([('x', 10), ('y', 20), ('z', 30)])

获取

# 访问元素--通过键来访问字典中的值
print(my_dict['a'],another_dict['y'])

# 获取键、值和键值对
print(my_dict.keys())
print(my_dict.values())
print(my_dict.items())

# 获取指定键的值,如果键不存在返回默认值
print(my_dict.get('dd',44))

# 复制字典
my_dict.copy()

新增/更新

# 定义一个字典
my_dict = {'a': 5, 'b': 2, 'c': 3, 'd': 4, 'x': 10, 'y': 20, 'z': 30}

# 添加或更新元素(键不存在则添加,键存在则更新)
my_dict['a'] = 1
my_dict['e'] = 5
print(my_dict)

# 添加或更新元素(键不存在则添加,键存在则不做修改)
my_dict.setdefault('a',11)
my_dict.setdefault('f',6)
print(my_dict)


# 将另一个字典中的键值对添加到my_dict中
my_dict.update(another_dict)
print(my_dict)

删除

my_dict = {'a': 5, 'b': 2, 'c': 3, 'd': 4, 'x': 10, 'y': 20, 'z': 30}

print(my_dict.pop('a')) # 删除指定键的键值对,并返回对应的值。
print(my_dict.popitem()) # 随机删除并返回一个键值对。
del my_dict['b'] # 删除指定键的键值对。
print(my_dict) 
my_dict.clear() # 清空字典中的所有元素。
print(my_dict)

集合

在Python中,集合是一种无序且不重复的数据集合。集合提供了许多方法来进行交集、并集、差集等操作。以下是一些常用的集合方法:

创建

# 创建集合的两种方法
my_set = {1, 2, 3} # 使用{}直接创建
another_set = set([4, 5, 6]) # 使用set函数创建
print(my_set,another_set)

新增

# 添加元素的两种方法
my_set.add(7) # 添加一个元素到集合
my_set.update(another_set) # 添加多个元素到集合
c = my_set.copy() #复制集合
print(my_set)
print(c)

删除

# 删除元素的几种方法
# print(my_set.remove(8)) # 删除集合中指定的元素,如果元素不存在则会引发 KeyError。
print(my_set.discard(8)) # 删除集合中指定的元素,如果元素不存在也不会引发错误。
print(my_set.pop()) # 随机删除并返回一个元素。
print(my_set.clear()) # 清空集合中的所有元素。

获取交集、并集、差集、对称差集

# 交集:取多个集合里边都有的
# 并集:把多个集合合并到一起,在去重
# 差集:取出在a集合里边有,在b集合里边没有的
# 对称差集:把多个集合中都有的元素删除,在取出

xn = ['wanxiyu','zhaowenjia','dulinxia','cihalong']
zdh = ['wanxiyu','zhaowenjia','hanmin','cihalong']

xn_set = set(xn)
zdh_set = set(zdh)

# 取交集两种写法
print(xn_set.intersection(zdh_set))# 写法一
print(xn_set & zdh_set) # 写法二

# 取并集两种写法
print(xn_set.union(zdh_set)) # 写法一
print(xn_set | zdh_set)# 写法二

# 取差集两种写法
print(xn_set.difference(zdh_set)) # 写法一
print(xn_set - zdh_set)# 写法二

# 取对称差集两种写法
print(xn_set.symmetric_difference(zdh_set)) # 写法一
print(xn_set ^ zdh_set)# 写法二

判断子集/超集/交集

set1 = {1, 2, 3}
set2 = {1, 2, 3,4}
# 判断一个集合是否是另一个集合的子集(一个集合的所有元素都包含在另一个集合中,那么这个集合被称为另一个集合的子集。即:集合1是集合2的子集)--两种写法
print(set1.issubset(set2))
print(set1 <= set2)

# 判断一个集合是否是另一个集合的超集(一个集合包含另一个集合的所有元素,那么这个集合被称为另一个集合的超集。即:集合2是集合1的超集)--两种写法
print(set2.issuperset(set1)) # 判断一个集合是否是另一个集合的超集。
print(set2 >= set1) # 判断两个集合是否没有交集。

# 判断两个集合是否没有交集
print(set1.isdisjoint(set2))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值