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

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

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

列表的索引与切片

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

image.png

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

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

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

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

nums = [1, 2, 3, 4, 5, 6, 7]
new_entire_nums = nums[:]
print('原列表的id:', id(nums))
print('新列表的id:', id(new_entire_nums))
复制代码

image.png

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

nums = [1, 2, 3, 4, 5, 6, 7]
print(nums[-3:-1])
print(nums[-7:-1])
print(nums[-7:6])
复制代码

image.png

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

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

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

列表索引的获取

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

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

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

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

# 索引修改元素
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

元组切片

  • 元组可以和列表一样通过索引获取元素和进行切片操作
  • 元组的index函数和列表的index函数用法完全一致
  • 元组无法通过索引修改和删除元素,因为元组是不可变数据类型
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

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

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

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



相关文章
|
8天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
8天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
8天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
9天前
|
机器学习/深度学习 存储 算法
探索Python编程:从基础到高级应用
【10月更文挑战第38天】本文旨在引导读者从Python的基础知识出发,逐渐深入到高级编程概念。通过简明的语言和实际代码示例,我们将一起探索这门语言的魅力和潜力,理解它如何帮助解决现实问题,并启发我们思考编程在现代社会中的作用和意义。
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
32 0
|
1月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
|
1月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
|
3月前
|
存储 数据安全/隐私保护 索引
Python基础语法day02字符串详解和列表
Python基础语法day02字符串详解和列表
|
6月前
|
存储 索引 Python
Python基础 笔记(七) 容器--字符串、列表
Python基础 笔记(七) 容器--字符串、列表
50 4
|
5月前
|
索引 Python
Python零基础入门-2 数字、字符串和列表
Python零基础入门-2 数字、字符串和列表
下一篇
无影云桌面