Python中[:]与[::]的用法

Python中[:]与[::]的用法

概述

[:]与[::]语法是通用序列操作(Common Sequence Operations)其中的两个。用[:]或[::]对多数序列类型(可变的或不可变的)(如字符串、列表等)序列中元素进行截取。

[:]的用法

s[i:j]

从下标i到下标j,截取序列s中的元素。

  1. 如果i或j为负数,则下标从序列尾部算起,也就是说,下标i相当于下标len(s)+i,下标j相当于下标len(s)+j。另外,-0依然是0。
  2. 从序列s的下标i的元素(包含)到下标j的元素(不包含)之间所有元素,进行截取。另外,i < j。
    • 若i或j大于len(s),则i或j被len(s)取代。
    • 若i省略或i是None值,则i被0取代。
    • 若j省略或j是None值,则j被len(s)取代。
    • 若i>=j,返回没元素的序列。
>>> a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[-1:]
[9]
>>> a[-9:-1]
[1, 2, 3, 4, 5, 6, 7, 8]
>>> a[1:20]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:9]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> a[0:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[9:3]
[]
>>>

[::]的用法

s[i:j:k]

从下标i到下标j,步数为k,截取序列s中的元素。

  1. 如果i或j为负数,则下标从序列尾部算起,也就是说,下标i相当于下标len(s)+i,下标j相当于下标len(s)+j。另外,-0依然是0。
  2. 从序列s的下标i的元素(包含)到下标j的元素(不包含)之间,选取下标为i+n*k的元素(0 <= n < (j-i)/k),也就是说,选取下标为i, i+k, i +2*k, i+3*k等等的元素,直到下标大于等于j为止。
    • 当k为正数,下标选取反向从0到len(s)-1。
    • 当k为负数,下标选取反向从len(s)-1到0。
    • 当i或j省略或是None值,则被端下标(0或len(s)-1)所取代(具体看k的正负符号)。
    • k不能为0。若k为None值,则将k看成1。
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[1:10:2]
[1, 3, 5, 7, 9]
>>> a[1:10:3]
[1, 4, 7]
>>> a[1:10:-2]
[]
>>> a[1:10:-3]
[]
>>> a[10:1:-2]
[9, 7, 5, 3]
>>> a[10:1:-3]
[9, 6, 3]
>>> a[::2]
[0, 2, 4, 6, 8]
>>> a[::-2]
[9, 7, 5, 3, 1]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[-9:-1:2]
[1, 3, 5, 7]
>>> a[-9:-1:-2]
[]
>>> a[-1:-9:-2]
[9, 7, 5, 3]
>>> a[-1::-2]
[9, 7, 5, 3, 1]
>>> a[:-1:2]
[0, 2, 4, 6, 8]
>>>

参考资料

  1. Common Sequence Operations
  2. python 中的[:-1]和[::-1]
  3. What is :: (double colon) in Python when subscripting sequences?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql redis 中间件_Docker快速搭建Mysql社区版,Redis,MongoDb、MQ等等中间件。

一&#xff1a;安装docker社区版。Centos系列(最好用7以上的版本&#xff0c;docker需要3.1以上的linux内核版本)sudo yum install docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo docker run hello-world如果你敲docker info需要root密码&#xff0c;…

JavaScript中String的slice(),substr(),substring()三者区别

JavaScript中String的slice()&#xff0c;substr()&#xff0c;substring()三者区别 共同之处 从给定的字符串中截取片段&#xff0c;并返回全新的这片段的字符串对象&#xff0c;且不会改动原字符串。 具体不同之处 slice() str.slice(beginIndex[, endIndex])参数描述be…

pythontuple数据类型_数据类型-元组Tuple

Python Tuple用于存储不可变python对象的序列。元组类似于列表&#xff0c;因为可以改变列表中存储的项的值&#xff0c;而元组是不可变的&#xff0c;并且不能改变存储在元组中的项的值。元组可以写成用小括号括起来的逗号分隔值的集合。元组可以定义如下。T1 (101, "Ay…

《剑指Offer》24:反转链表

题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转链表并输出反转后链表的头节点。链表节点定义如下&#xff1a; public static class ListNode{public int val;public ListNode next;public ListNode(int val) {this.val val;} }分析 方法一&#xff1…

python两个for循环为什么第二个循环里值不变_两个for循环,第二个只在第一个迭代python上执行...

我是一个pythonnoob&#xff0c;我试图比较两个文件中的行之间的值&#xff0c;如果行在第二个文件中&#xff0c;则输出“line name”&#xff0c;然后输出1&#xff1b;如果第二个文件中缺少该行&#xff0c;则输出0。第一次迭代返回1&#xff0c;因为该行在第二个文件中&…

python如何问问题_学会正确的提问

可能很多读者看到这个标题会感觉很可笑&#xff0c;提问谁不会啊&#xff0c;互联网时代&#xff0c;提问还不是一句话的事情&#xff1f;个人、技术群、论坛里都可以提问啊&#xff0c;「你好」「在吗&#xff1f;」「有人用过 xx 工具吗&#xff1f;」。首先&#xff0c;提问…

如何保证接口的幂等性

如何保证接口的幂等性 什么是幂等性 幂等性是系统服务对外一种承诺&#xff0c;承诺只要调用接口成功&#xff0c;外部多次调用对系统的影响是一致的。声明为幂等的服务会认为外部调用失败是常态&#xff0c;并且失败之后必然会有重试。 通俗地说&#xff0c;接口幂等性就是…

mysql二进制方式_MySQL数据库之MySql二进制连接方式详解

本文主要向大家介绍了MySQL数据库之MySql二进制连接方式详解 &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。使用mysql二进制方式连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接my…

xposed模块编写教程_太极xposed模块使用教程

今天给大家分享一下太极xposed模块使用教程。很多小伙伴说下载不到Xposed模块&#xff0c;这个网上其实很多&#xff0c;但是第三方的下载站就算了吧。我也是一个深受其害的网瘾少年&#xff0c;只要是下载站的软件&#xff0c;一不留心一次性电脑可能会多安装好多个软件&#…

如何使用mysql添加更新_Mysql 存在既更新,不存在就添加(sql语句)

讨人喜欢的 MySQL replace into 用法(insert into 的增强版)在向表中插入数据的时候&#xff0c;经常遇到这样的情况&#xff1a;1. 首先判断数据是否存在&#xff1b; 2. 如果不存在&#xff0c;则插入&#xff1b;3.如果存在&#xff0c;则更新。在 SQL Server 中可以这样处理…

linux + nginx + mysql + php 百度网盘_5.LNMP(Linux + Nginx + MySQL + PHP)环境安装

1.安装Nginx:yum install yum-priorities -ywget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmrpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpmyum -y install nginxsystemctl start nginx.servicesystemctl stop ngin…

LeetCode - Easy - 28. Implement strStr()

Topic Two Pointers, String Description https://leetcode.com/problems/implement-strstr/ Implement strStr(). Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. needle /ˈniːdl/ n.针 haystack /ˈheɪ…

mysql item_MySQL源代码:关于MySQL的Item对象

前篇介绍了MySQL如何从SQL语句转换成一个内部对象。本文是前篇的延续&#xff0c;将更加详细的介绍WHERE语句对应的Item对象。1. Item对象MySQL InternalMySQL Internals Manual较为详细的介绍了Item对象。Item对象经常被称作"thingamabob"(A thingamabob is a noun …

python的发展趋势图_用Python绘制趋势图

我在数据帧中有以下数据&#xff1a;-------------------------------------------------------| Physician Profile Id | Program Year | Value Of Interest |-------------------------------------------------------| 1004777 | 2013 | 83434288.00 || 1004777 | 2014 | 89…

mysql的实现类注解_Mybaits (XML方式:无需在写Dao的实现类 注解方式:Dao的实现类与Mapper都可以不写 重点理解)...

Maven的pom.xml 坐标配置4.0.0Mybatis_mavenday01_mbatis1.0-SNAPSHOTjarorg.mybatismybatis3.4.5mysqlmysql-connector-java5.1.45junitjunit4.12testorg.apache.maven.pluginsmaven-compiler-plugin2.3.21.81.8UTF-8mybatis的配置文件/p>PUBLIC "-//mybatis.org//DTD…

SQL字符串中单引号与换行符的转义

问题 打算将文本文件内容添加至MySQL数据库&#xff0c;则需要对文本中的单引号和换行符进行转义&#xff0c;否则无法编写合法的SQL。 解法 迭代文本文件的行时&#xff0c;将原行尾的换行符剔除掉&#xff0c;并拼接\\n;迭代文本文件的行时&#xff0c;将原行中的替换成。…

mysql 建库字段_MySQL 的字段类型以及建库策略

一、数字类型所谓的“数字类”&#xff0c;就是指 DECIMAL 和NUMERIC&#xff0c;它们是同一种类型。它严格的说不是一种数字类型&#xff0c;因为他们实际上是将数字以字符串形式保存的&#xff1b;他的值的每一位(包括小数点)占一个字节的存储空间&#xff0c;因此这种类型耗…

mysql中建立text_mysql中text

一&#xff0c;char类型char列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存char值时&#xff0c;在它们的右边填充空格以达到指定的长度。当检索到char值时&#xff0c;尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。二&#xff0c;varcha…

前后分离接口规范

前后分离接口规范 随着互联网的高速发展&#xff0c;前端页面的展示、交互体验越来越灵活、炫丽&#xff0c;响应体验也要求越来越高&#xff0c;后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻&#xff0c;从而导致前后端研发各自专注于自己擅长的领域深耕…

mysql proxy 悲观锁_mysql悲观锁总结和实践

使用场景举例&#xff1a;以MySQL InnoDB为例商品t_goods表中有一个字段status&#xff0c;status为1代表商品未被下单&#xff0c;status为2代表商品已经被下单&#xff0c;那么我们对某个商品下单时必须确保该商品status为1。假设商品的id为1。一、如果不采用锁&#xff0c;那…