Python元素集合的列表切片

目录
  • 一、列表切片(Slicing)
  • 二、基础实例
  • 三、带有负索引的切片(SlicewithNegativeIndices)
  • 四、带有正负索引的切片
  • 五、指定切片step
  • 六、负步长
  • 七、在开始和结束处切片(SliceatBeginning&End)
  • 八、反转列表(ReverseaList)
  • 九、修改多个列表元素值
  • 十、插入多个列表元素
  • 十一、删除多个列表元素
  • 十二、克隆或复制列表

一、列表切片(Slicing)

由于列表是元素的集合,我们应该能够获得这些元素的任何子集。 例如,如果想从列表中获得前三个元素,我们应该能够轻松地完成。 对于列表中间的任何三个元素,或最后三个元素,或列表中任何位置的任何x个元素,情况也应如此。 列表的这些子集称为切片。

If L is a list, the expression L [ start : stop : step ] returns the portion of the list from index start to index stop, at a step size step.

二、基础实例

下面是列表切片的一个基本示例:

#Example: Slice from index 2 to 7

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[2:7])    # ['c', 'd', 'e', 'f', 'g']

['c', 'd', 'e', 'f', 'g']

三、带有负索引的切片 (Slice with Negative Indices)

可以在切片列表时指定负索引。

例如: Slice from index -7 to -2、

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[-7:-2])    # ['c', 'd', 'e', 'f', 'g']
['c', 'd', 'e', 'f', 'g']

四、带有正负索引的切片

可以同时指定正索引和负索引。

# Slice from index 2 to -5

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[2:-5])    # ['c', 'd']
['c', 'd']

五、指定切片step

可以使用step参数指定切片的步长。

step参数是可选的,默认情况下为1。

#Returns every 2nd item between position 2 to 7

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[2:7:2])    # ['c', 'e', 'g']
['c', 'e', 'g']

六、负步长

可以指定负步长。

#Example: Returns every 2nd item between position 6 to 1

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[6:1:-2])    # ['g', 'e', 'c']
['g', 'e', 'c']

七、在开始和结束处切片 (Slice at Beginning & End)

省略起始索引会从索引0开始切片。

含义,L [:stop]等效于L [0:stop]

# Example: Slice the first three items from the list

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[:3])    # ['a', 'b', 'c']
['a', 'b', 'c']

而省略stop索引会将切片延伸到列表的末尾。

意思是L [start:]等效于L [start:len(L)]

Example: 从列表中切掉最后三项

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[6:])    # ['g', 'h', 'i']
['g', 'h', 'i']

八、反转列表 (Reverse a List)

可以通过省略开始索引和停止索引并将步骤指定为-1来反转列表。

Example: 使用切片运算符反转列表

L = ['a', 'b', 'c', 'd', 'e']
print(L[::-1])    
['e', 'd', 'c', 'b', 'a']

九、修改多个列表元素值

可以使用切片赋值一次修改多个列表元素。

Example: 使用slice修改多个列表项

L = ['a', 'b', 'c', 'd', 'e']
L[1:4] = [1, 2, 3]
print(L)    # ['a', 1, 2, 3, 'e']
['a', 1, 2, 3, 'e']

Example: 替换多个元件以代替单个元件

L = ['a', 'b', 'c', 'd', 'e']
L[1:2] = [1, 2, 3]
print(L)    # ['a', 1, 2, 3, 'c', 'd', 'e']
['a', 1, 2, 3, 'c', 'd', 'e']

十、插入多个列表元素

我们可以在列表中插入项目,而无需替换任何内容。只需指定

Example: 使用slice插入多个列表项

L = ['a', 'b', 'c']
L[:0] = [1, 2, 3]
print(L)    # [1, 2, 3, 'a', 'b', 'c']
[1, 2, 3, 'a', 'b', 'c']
L = ['a', 'b', 'c']
L[len(L):] = [1, 2, 3]
print(L)    # ['a', 'b', 'c', 1, 2, 3]
['a', 'b', 'c', 1, 2, 3]

可以通过指定切片的开始索引和停止索引将元素插入到列表的中间。

Example:在中间插入多个列表项

L = ['a', 'b', 'c']
L[1:1] = [1, 2, 3]
print(L)    # ['a', 1, 2, 3, 'b', 'c']
['a', 1, 2, 3, 'b', 'c']

十一、删除多个列表元素

可以通过将适当的切片赋值给空列表来删除列表中间的多个元素。

也可以将del语句用于切片。

Example: 使用slice删除多个列表项

L = ['a', 'b', 'c', 'd', 'e']
L[1:5] = []
print(L)    # ['a']
['a']
with del keyword
L = ['a', 'b', 'c', 'd', 'e']
del L[1:5]
print(L)    # ['a']
['a']

十二、克隆或复制列表

当执行new_List = old_List时,实际上没有两个列表。 赋值仅将引用复制到列表,而不是实际列表。 因此,赋值后new_List和old_List都引用相同的列表。

可以使用切片运算符复制列表(也称为浅拷贝)。

Example: 使用slice创建列表的副本(浅拷贝)

L1 = ['a', 'b', 'c', 'd', 'e']
L2 = L1[:]
print(L2)       # ['a', 'b', 'c', 'd', 'e']
print(L2 is L1) # False
['a', 'b', 'c', 'd', 'e']
False

到此这篇关于Python元素集合的列表切片的文章就介绍到这了,更多相关Python列表切片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python高级特性之切片迭代列表生成式及生成器详解

    目录 切片 迭代 列表生成式 生成器 迭代器 在Python中,代码越少越好.越简单越好.基于这一思想,需要掌握Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码.代码越少,开发效率越高. 切片 tuple,list,字符串都可以进行切片操作 L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] L[0:3] # ['Michael', 'Sarah', 'Tracy'] L[:3] # ['Michael', 'Sarah', '

  • python 实现列表的切片操作允许索引超出范围

    其余的不说, 列表切片操作允许索引超出范围: 补充:关于python3报错列表索引超出界限的解决方法 python3报错: IndexError: list index out of rang 这个可能是因为在取索引的时候列表里面没有元素了或者不够,那这样自然取不出来了,会报告说超出界限,这样子的话我们可以给这句代码一个if判断,让它如果里面有元素或元素够了才让它取出来,就不会报错了! 补充:Python_怎么利用切片从列表中取出一部分使用 我想从列表中取出一部分拿来使用,可以创建切片,指定需要

  • python 列表的查询操作和切片

    目录 1.列表 2.列表的创建[]或list() 3.定位列表中的元素L[0] 4.查询列表中元素索引L.index() 5.列表的切片操作L[start:stop:step] 6.L[slice(start,stop,step)] 7.in/not in 查询是否包含某个元素,存在返回True 1.列表 列表是python内置的数据结构(列表.元组.字典.集合),相当于数组 列表中所有数据都是按顺序有序排列,列表属于序列类型 列表中的所有数据都有正数和负数的索引,通过指定的索引总能映射到唯一确

  • python切片复制列表的知识点详解

    1.不指定开始和结束的索引[:],这样得到的切片就可以包含整个列表,然后给切片一个新的变量,从而实现复制列表. 2.创建原始列表的副本,两个列表的操作不会影响. 实例 names = ["Jerry", "Tom"] names_copy = names[:] names.append("Ann") names_copy.append("Bob") print(f"names:{names}") print

  • python列表的切片与复制示例分析

    大家可以先参考python切片复制列表的知识点详解这篇内容,对知识点用法有个了解 切片,即处理一个完整列表中部分数据. 语法 变量[起始索引:终止索引:步长] 首先创建一个字符串列表 >>> cars = ['toyota', 'honda', 'mazda', 'nissan', 'mitsubishi', 'subaru', 'suzuki', 'isuzu'] >>> >>> cars ['toyota', 'honda', 'mazda', '

  • Python切片列表字符串如何实现切换

    1. 怎么实现字符串变为list 使用split(),把字符串拆分再存入数组: 例子 input="ni si shi" output=input.split(" ") print (output) 输出应为:['ni', 'si', 'shi'] 2. 怎么使 list 数据逆序: 这里可以用到切片中slice[start:end:steps] start 指自定义列表中起始位置 end 指自定义的最后一个元素位置,一般情况都是为空,直指列表最末 steps 指步

  • Python元素集合的列表切片

    目录 一.列表切片(Slicing) 二.基础实例 三.带有负索引的切片(SlicewithNegativeIndices) 四.带有正负索引的切片 五.指定切片step 六.负步长 七.在开始和结束处切片(SliceatBeginning&End) 八.反转列表(ReverseaList) 九.修改多个列表元素值 十.插入多个列表元素 十一.删除多个列表元素 十二.克隆或复制列表 一.列表切片(Slicing) 由于列表是元素的集合,我们应该能够获得这些元素的任何子集. 例如,如果想从列表中获

  • python列表切片和嵌套列表取值操作详解

    给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中,-1表示list最后一个元素 首先来看最简单的单一列表: a = [1,2,3,4] a[:] a[::] a[:3] a[1:3:2] a[3] 输出依次为: [1,2,3,4] [1,2,3,4] [1,2,3] [2] 4 注意,这里只有最后一个输出是不带[]的,表明只有最后一个输出是元素,其他在切片中只用了:符号的输出均为list,不

  • Python列表切片操作实例总结

    本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个索引之前元素后停止 . books=['半生缘','往事并不如烟','心是孤独的猎手'] print(books[0:2]) 运行结果: ['半生缘', '往事并不如烟'] 2 未指定索引 如果没有指定第一个索引, 那么 Python 会默认从表头开始: books=['半生缘','往事并不如烟',

  • Python 中的range(),以及列表切片方法

    range()函数配合循环一块使用很方便,今天来整理一下这个函数的主要用法,以及几个小例子 首先来看一下函数原型,非常简单: range(start,end [,step]) 或者连start都省略掉: range(end) 其中,start表示开始点,end表示结束点,真正结束的位置是end的前一个值,step表示步长. 例如: print(list(range(1,5))) #list函数是将range的值列表化,这时候的输出为 1,2,3,4 (没有5!即不包括最后一个end的值) pri

  • Python列表切片常用操作实例解析

    这篇文章主要介绍了Python列表切片常用操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近在爬一个网站的文档的时候,老师要求把一段文字切割开来,根据中间的文本分成两段 故学习了一段时间的切片操作,现把学习成果po上来与大家分享 1.何为切片? 列表的切片就是处理列表中的部分元素,是把整个列表切开的方法. 切片可以说是整个列表中的重点内容,相信你在以后的Python项目中会经常使用到. 它的语法是: 2.简单介绍切片的几个常见操作

  • python代码实现将列表中重复元素之间的内容全部滤除

    1. 引言 因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点到终点的路径,也因此需要将路径中重复节点之间的路径删除掉(避免走回头路),这样子初始种群会比较优越,也能加快算法收敛速度.然后我在搜资料的时候发现,许多的代码都是滤除列表中相同元素的,并没有滤除相同元素中间段的代码,因此就自己写了. 2. 代码部分 我在python程序中把每一条路径用列表表示的,因此每一个列表就是一条路径比如 a = [0,1,3,4,5

  • Python列表切片用法示例

    本文实例讲述了Python列表切片用法.分享给大家供大家参考,具体如下: Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组. 格式:[start:end:step] start:起始索引,从0开始,-1表示结束 end:结束索引 step:步长,end-start,步长为正时,从左向右取值.步长为负时,反向取值 注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引 a=[1,2,3,4,5,6] b1=a[:] #省略全部,代表截取全部

  • python实现创建新列表和新字典,并使元素及键值对全部变成小写

    如下所示: lists = ['tom','Jack','luCy','lily','jErry','anna'] dics = {'jack':'python','Lucy':'jaVa','jeRry':'rUby','lily':'c#',} new_lists = [] for i in lists: new_lists.append(i.lower()) print(new_lists) new_dics = {} for i,j in dics.items(): new_dics[i

  • Python实现判断给定列表是否有重复元素的方法

    本文实例讲述了Python实现判断给定列表是否有重复元素的方法.分享给大家供大家参考,具体如下: 题目很简单,只是简单温习一个方法,most_common,这是collection模块中Counter类的方法,具体方法用法可以去查 下面是简单的实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:给定一个列表判断里面是否有重复元素 ''' from collections import Counter def func

  • python 实现返回一个列表中出现次数最多的元素方法

    如下所示: # 返回一个列表中出现次数最多的元素 def showmax(lt):     index1 = 0                       #记录出现次数最多的元素下标     max = 0                          #记录最大的元素出现次数     for i in range(len(lt)):         flag = 0                    #记录每一个元素出现的次数         for j in range(i+1,

随机推荐