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.pswp.cn/news/445833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445833.shtml
英文地址,請注明出處:http://en.pswp.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;那…