前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 编程 | 连载 09 - 列表、元组和字符串切片

Python 编程 | 连载 09 - 列表、元组和字符串切片

作者头像
RiemannHypothesis
发布2022-09-26 16:04:02
5540
发布2022-09-26 16:04:02
举报
文章被收录于专栏:Elixir

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

一、列表、元组和字符串切片

列表的索引与切片

字符串、元组和列表中从最左边记录的位置就是索引,索引用数字表示,从0开始

image.png
image.png

索引从0开始,所以最大索引为长度-1

索引是用来对单个元素进行访问,切片则是对一定反问的元素进行访问,切片通过冒号在中括号内把相隔的两个索引查找出来,切片的规则为左含右不含

代码语言:javascript
复制
nums = [1, 2, 3, 4, 5, 6, 7]

print('nums列表的最大索引是:{}'.format(len(nums) - 1))
print('索引4位置的元素是:{}'.format(nums[4]))

print('获取完整的nums列表:',nums[:])
print('第二种方法获取完整列表:',nums[0:])
print('获取除最后一个元素外的列表:', nums[:-1])
image.png
image.png

切片起始索引默认是0,并包含索引0的元素

代码语言:javascript
复制
nums = [1, 2, 3, 4, 5, 6, 7]

new_entire_nums = nums[:]
print('原列表的id:', id(nums))
print('新列表的id:', id(new_entire_nums))
image.png
image.png

切片获取的列表id与原列表不同,切片会生成一个新的列表

代码语言:javascript
复制
nums = [1, 2, 3, 4, 5, 6, 7]

print(nums[-3:-1])
print(nums[-7:-1])
print(nums[-7:6])
image.png
image.png

列表中索引从右往左是从-1开始,依次为-2、-3.....

使用[]进行切片除了传入两个索引外,还可以传入第三个值既步长,步长默认为1,也就是从左往右依次的获取,如果索引为负数,就是从右往左按照步长的长度获取

代码语言:javascript
复制
nums = [1, 2, 3, 4, 5, 6, 7]

print(nums[-3:-1])
print(nums[-7:-1:3])
print(nums[-7:6:2])
print(nums[6:-7:-2])
image.png
image.png

列表索引的获取

列表中可以通过list[index]=new_item来修改元素,数据的修改只能在存在的索引范围内,列表无法通过添加新的索引的方式赋值。

index函数可以获取元素在列表中的索引

代码语言:javascript
复制
heros = ['stark', 'peter', 'banner', 'thor', 'loki']

idx_01 = heros.index('banner')
print('banner在列表中的索引是:', idx_01)

idx_02 = heros.index('wanda')
print('wanda在列表中的索引是:', idx_02)
image.png
image.png

查找的元素在列表中不存在时会报错

代码语言:javascript
复制
# 索引修改元素
heros = ['stark', 'peter', 'banner', 'thor', 'loki']
heros[2] = 'wanda'
print(heros)
heros[-1] = 'clint'
print(heros)
# 切片方式修改
heros[1:3] = 'hulk', 'wonder woman'
print(heros)
heros[1:3:2] = ['Captain']
print(heros)
image.png
image.png

元组切片

  • 元组可以和列表一样通过索引获取元素和进行切片操作
  • 元组的index函数和列表的index函数用法完全一致
  • 元组无法通过索引修改和删除元素,因为元组是不可变数据类型
代码语言:javascript
复制
heros_tuple = ('stark', 'peter', 'banner', 'thor', 'loki')

peter = heros_tuple[1]
print('索引位置为1的元素是:',peter)

new_heros = heros_tuple[:]
new_heros_01 = heros_tuple[0:]
new_herso_02 = heros_tuple[:-1]
new_heros_03 = heros_tuple[::2]
new_heros_04 = heros_tuple[::-2]

print(new_heros)
print(new_heros_01)
print(new_herso_02)
print(new_heros_03)
print(new_heros_04)
image.png
image.png

字符串的索引与切片

字符串的索引规则与列表的索引规则一致

image.png
image.png
  • 切片和索引的获取与列表相同
  • 无法通过索引修改与删除元素
  • 字符串不可修改

find函数也可以获取字符在字符串中索引的位置,index函数也可以获取字符在字符串中索引的位置,当元素不存在时find函数返回-1,index函数则会报错

代码语言:javascript
复制
info = '上海昨日新增无症状5298例'

index_01 = info.index('上海')
print(index_01)

index_02 = info.index('昨日')
print(index_02)

find_01 = info.find('5298')
print(find_01)

find_02 = info.find('背景')
print(find_02)

index_03 = info.index('背景')
print(index_03)
image.png
image.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、列表、元组和字符串切片
    • 列表的索引与切片
      • 列表索引的获取
        • 元组切片
          • 字符串的索引与切片
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档