【Python】切片

处理Python的部分元素,称之为切片。

创建切片

指定要是用的第一个元素和最后一个元素的索引,与range()函数一样,Python在到达你指定的第二个索引前面的元素后停止。

先定义一个列表vegetables

vegetables = [‘tomato‘,‘bean‘,‘potato‘,‘onion‘,‘radish‘]

取出第1~3个元素

print(vegetables[0:3])

取出第2~4个元素

print(vegetables[1:4])

取出前4个元素

print(vegetables[:4])

取出第2个元素后的所有元素(包含第2个)

print(vegetables[2:])

取出最后三个元素

print(vegetables[-3:])

复制列表

要复制切片,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引[:],这让python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。

fruits = [‘aplle‘,‘pear‘,‘lemon‘,‘peach‘]
fruits_copy = fruits[:]
print(fruitsfoot_copy)

可能从上述案例中我们还没办法看出是有2个列表,下面整个例子可以更好的说明

fruits = [‘aplle‘,‘pear‘,‘lemon‘,‘peach‘]
fruits_copy = fruits[:]

fruits.append(‘grape‘)
fruits_copy.append(‘banana‘)

print(fruits)
print(fruits_copy)

打印结果:

[‘aplle‘, ‘pear‘, ‘lemon‘, ‘peach‘, ‘grape‘]
[‘aplle‘, ‘pear‘, ‘lemon‘, ‘peach‘, ‘banana‘]

这就说明了确实是复制了列表。

以下是一个错误的案例

fruits = [‘aplle‘,‘pear‘,‘lemon‘,‘peach‘]
fruits_copy = fruits
fruits.append(‘grape‘)
fruits_copy.append(‘banana‘)

print(fruits)
print(fruits_copy)

打印结果:

[‘aplle‘, ‘pear‘, ‘lemon‘, ‘peach‘, ‘grape‘, ‘banana‘]
[‘aplle‘, ‘pear‘, ‘lemon‘, ‘peach‘, ‘grape‘, ‘banana‘]

这里将fruits赋给fruits_copy,而不是将fruits的副本存储到fruits_copy.

时间: 2024-10-04 16:57:39

【Python】切片的相关文章

关于javascript里面仿python切片操作数组的使用方法

其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用xxx in range(): ...跪.:( ) 而是我觉得字符串操作的切片真实让我感到前所未有的爽. 试想一下,我们平时操作最多的数组和字符串在切片的帮助下,不知道可以省去多少时间和麻烦.而且有了切片甚至不用去记很多可以被切片代替的api. 今天我在啃<学习javascript数据结构与算法>

流畅的Python——切片

2.4 切片 在 Python 里,像列表(list).元组(tuple)和字符串(str)这类序列类型都支持切片操作,但是实际上切片操作比人们所想象的要强大很多. 在我个人的使用经历来看,在算法实践中切片用的还以比较多的. 首先我们先来简单的温习一下切片的使用. 一. Python可切片对象的索引方式 包括:正索引和负索引两部分,如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例: 二. Python切片操作的一般方式 一个完整的切片表达式包含两个":&qu

Python 切片彻底理解

From:https://www.jianshu.com/p/15715d6f4dad 在利用python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器.理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值.切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉.本文通过详细例子总结归纳了切片操作的各种情况.若有错误和不足之处请大牛指正! 一. Pyth

彻底搞懂Python切片操作

一.Python可切片对象的索引方式 Python可切片对象的索引方式包括:正索引和负索引两部分.如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例: 二.Python切片操作的一般方式 一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index.end_index.step),当只有一个“:”时,默认第三个参数step=1. 切片操作基本表达式:object[start_index : end_index : step] step:正负数均

python切片

假设有一个list,要对其进行截取操作 L = ['Michael', 'Smith', 'Jobs', 'John'] 首先分别取出其中的值,我们可以像PHP中操作数组一样取值 可见,此种方法可以取出L的值.值得注意的是,索引同PHP Array一样从0开始 如果想取出L中前3个元素,也可以使用for循环来处理 用这种方法,取出了要求的结果.但是python提供了一种更方便简洁的操作,就是切片(slice).下面来演示如果使用切片来获取L中的前三个元素 仅仅用L[0:3]就达到了同for操作一

Python切片详解

先从原理上分析切片运算: list的切片,内部是调用__getitem__,__setitem__,__delitem__和slice函数.而slice函数又是和range()函数相关的. 给切片传递的键是一个特殊的slice对象.该对象拥有可描述所请求切片方位的属性,例如: 1 a = [ 1, 2, 3, 4, 5, 6 ] 2 x = a [ 1 : 5 ] # x = a.__getitem__( slice ( 1, 5, None ) ) 3 a [ 1 : 3 ] = [10, 1

Python切片操作

1.切片 Python中序列包括string.list.tuple,序列可以使用切片操作,利用切片操作可以获得对应类型的变量的任意部分(子集) 比如 s="HelloWorld",我们可以通过切片操作s[0:5]获得"Hello". 序列的下标是从0开始的 从左到右,下标范围:[0,len(s)-1) 从右到左,下标范围:[-len(s),-1] 2.切片示例 切片的语法为:[start:end:step] 表示从下标start开始,以步长step跨越,以下标end

go和python切片的不同

go有切片slice类型,python有列表和元组,这两种语言都有切片操作. 但是它们的切片操作是完全不同的. 首先说第一个,go的切片,其成员是相同类型的,python的列表和元组则不限制类型. 两种语言都有[a:b]这种切片操作,意义也类似,但是go的a.b两个参数不能是负数,python可以是负数,此时就相当于从末尾往前数. 两种语言都有[a:b:c]这种切片操作,意义却是完全不同的.go的c,表示的是容量:而python的c表示的是步长. 但是最大的不同,还是: python的切片产生的

python切片练习

这块儿没什么难的,细心一点就好 L = [] n = 1 while n <= 99: L.append(n) n = n + 2 print(L) #但是在Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好. #基于这一思想,我们来介绍Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码.请始终牢记,代码越少,开发效率越高. L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] #取前三个元素的方法

python 切片知识大全

切片 无论是在工作中,还是面试的过程性,总会有那么几个关于对某一个集合进行切片,得到我们想要的部分.可见这部分虽然简单但还是很重要的,正确运用可以使你更有效的解决一些复杂的问题.下面我们就正式进行有关切片的学习: 切片操作符在python中的原型是:[start:stop:step]  ------- [开始索引:结束索引:步长值] 开始索引:同其它语言一样,从0开始.序列从左向右方向中,第一个值的索引为0,最后一个为-1 结束索引:切片操作符将取到该索引为止,不包含该索引的值 步长值:默认是一