Python3序列类型(字符串、列表、元组)

诸神缄默不语-个人CSDN博文目录

本文介绍Python3序列类型对象(字符串、列表、元组)及其操作方法。

Python中的主要序列类型:

  • str(字符串):由字符构成的序列;
  • list(列表):一个可以修改数据项的序列类型,使用也最灵活;
  • tuple(元组):包含0个或多个数据项的不可变序列类型。元组生成后是固定的,其中任何数据项不能替换或删除。

1. 序列类型通用的操作符和函数

操作符描述
x in s如果x是s的元素,返回True,否则返回False
x not in s如果x不是s的元素,返回True,否则返回False
s + t连接s和t
s*n或n*s将序列s复制n次
s[i]索引,返回序列的第i个元素
s[i: j]分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)
s[i: j: k]步骤分片,返回包含序列s第i到j个元素以j为步数的子序列
len(s)序列s的元素个数(长度)
min(s)序列s中的最小元素
max(s)序列s中的最大元素
s.index(x)序列s中第一次出现元素x的位置
s.count(x)序列s中出现x的总次数

2. str:字符串

在Python中,字符串是用两个双引号"或者单引号’括起来的一个或多个字符。
当字符串中有引号时,可以使用另外一类引号将字符串括起来,也可以使用转义字符\

  1. strip():移除字符串首尾空格
  2. endswith(chars:str):返回布尔值,字符串是否以chars作为结尾
  3. startswith(chars:str):返回布尔值,字符串是否以chars作为开头
  4. split()'管理部,人事部,销售部'.split(',') 指定分隔符分隔文本,返回分割后的字符串数组
  5. replace(str1,str2):将字符串中所有str1替换成str2
  6. format():字符串格式化。比较简单的用法就是在原字符串中用花括号{}指代要用入参来替换的内容,如代码"The sum of 1 + 2 is {0}".format(1+2)返回'The sum of 1 + 2 is 3'。我个人感觉这么写比直接用加号的优势主要在于好看(官方文档:https://docs.python.org/zh-cn/3/library/stdtypes.html#str.format
  7. 字符串直接用+就可以连接多个字符串。还可以以这种形式将各种对象自动转换为字符串对象插入文本,如:
    1. 字符串mode='train'"%s_mode_dataset" % mode(用mode替换%s
  8. find(str):返回入参在原字符串中第一次出现时的索引值。如果不包含入参,返回-1
  9. rfind(str):返回入参在原字符串中从右边起始第一次出现时的索引值
  10. join(list):用原字符串来连接入参列表中的每一个元素,如'-'.join('我不想上学')的返回值是我-不-想-上-学
  11. upper()lower():返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中非字母字符保持不变。
  12. isupper()islower():如果字符串至少有一个字母,并且所有字母都是大写或小写,方法就会相应地返回布尔值True。否则,该方法返回False。
  13. capitalize():返回一个与原字符串内容相同、第一个字母大写其他字母小写的新字符串1
  14. isalpha() 返回True,如果字符串只包含字母,并且非空
  15. isalnum() 返回True,如果字符串只包含字母和数字,并且非空;
  16. isdecimal() 返回True,如果字符串只包含数字字符,并且非空;
  17. isspace() 返回True,如果字符串只包含空格、制表符和换行,并且非空;
  18. istitle() 返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。
  19. isdigit() 返回True,如果字符串可以转换为整数。
  20. rjust()ljust()center() 通过插入空格来对齐文本。 第一个参数是一个整数长度,用于对齐字符串。第二个可选参数将指定一个填充字符,取代空格字符
  21. strip()rstrip()lstrip() 删除空白字符。有一个可选的字符串参数(不能用正则表达式),指定两边的哪些字符应该删除
  22. format() <模板字符串>.format(<逗号分隔的参数>)
  23. 字符串前面加r:防止字符转义2
  24. 字符串前面加u:用Unicode格式编码字符串(一般用在中文字符串前,预防源码储存格式导致乱码问题)
  25. 字符串前面加b:转换为bytes对象
  26. 字符串前面加f:格式化
    举例:
for i in range(3):
    print(f"i={i}, i+1={i+1}")

输出:

i=0, i+1=1
i=1, i+1=2
i=2, i+1=3

3. 不同编码字符格式之间的转换

  1. 字符串和bytes对象之间的转换3
    str.encode('utf-8')
    bytes.decode('utf-8')

4. list:列表

  1. count(obj):计算列表中某元素出现的次数
  2. append(obj):添加一个对象
  3. extend(obj):将另一个集合对象的所有元素逐一添加到列表中(可参考我之前撰写的博文:Python3 list不去重合并
  4. remove(obj):删除一个对象
  5. pop(index):删除列表中的元素(默认最后一个),返回被删除的元素。[^20]
  6. index(obj):返回对象在列表中的索引(第一个对象)
  7. 列表生成式/列表解析式,示例:[i for i in range(10)]
  8. 列表可以同时使用正向递增序号和反向递减序号,可以采用标准的比较操作符(<、<=、==、!=、>=、>)进行比较,列表的比较实际上是单个数据项的逐个比较。
  9. 列表也可以包含其他列表值。这些列表的列表中的值,可以通过多重下标来访问。
  10. 虽然下标从0 开始并向上增长,但也可以用负整数作为下标。整数值−1 指的是列表中的最后一个下标,−2 指的是列表中倒数第二个下标,以此类推。
  11. 切片  print(li[::-1]) #可以实现列表的反转,但不改变原列表
函数或方法描述
ls[i] = x替换列表ls第i数据项为x
ls[i: j] = lt用列表lt替换列表ls中第i到j项数据(不含第j项,下同)
ls[i: j: k] = lt用列表lt替换列表ls中第i到j以k为步的数据
del ls[i: j]删除列表ls第i到j项数据,等价于ls[i: j]=[]
del ls[i: j: k]删除列表ls第i到j以k为步的数据
ls += lt 或 ls.extend(lt)将列表lt元素增加到列表ls中
ls *= n更新列表ls,其元素重复n次
ls.append(x)在列表ls最后增加一个元素x
ls.clear()删除ls中所有元素
ls.copy()生成一个新列表,复制ls中所有元素
ls.insert(i, x)在列表ls第i位置增加元素x
ls.pop(i)将列表ls中第i项元素取出并删除该元素
ls.remove(x)将列表中出现的第一个元素x删除
ls.reverse(x)列表ls中元素反转
ls.sort([reverse,key])排序,reverse=True逆序排序
ls.count(x)特定值在列表中出现的次数

5. tuple:元组

  1. 元组输入时用圆括号()。
  2. 如果元组中只有一个值,你可以在括号内该值的后面跟上一个逗号,表明这种情况。否则,Python 将认为,你只是在一个普通括号内输入了一个值。逗号告诉 Python,这是一个元组(不像其他编程语言,Python 接受列表或元组中最后表项后面跟的逗号)。
    ('西南财经大学',)
  3. 使用()创造空元组
  4. 元组解包:可以一口气将元组赋值给多个变量
    employeeInfo = ('10948', '刘利')
    empNo, empName = employeeInfo
  5. 可以将元组用作字典的键。
    函数的参数是以元组形式传递的。
  6. 可以切片的基础数据对象:字符串,列表,元组
  7. 对迭代器iterator的操作:循环,输出下一个对象next(iterator_object),转换为list对象(list(iterator_object),以便切片、取数等操作)
    itertools库可参考我撰写的另一篇博文:itertools:Python3迭代库(持续更新ing…)

本文撰写过程中参考的其他资料

  1. python列表的一些常用方法以及函数

  1. Python 3 字符串 capitalize( ) 方法_python3 capitalize-CSDN博客 ↩︎

  2. python3 字符串前面加上’r’的作用_.''r_whatday的博客-CSDN博客 ↩︎

  3. python3 中怎么把类似这样的’\xe5\xae\x9d\xe9\xb8\xa1\xe5\xb8\x82’转换成汉字输出_\xe6_Aidanmomo的博客-CSDN博客 ↩︎

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值