[轉載] 列表、元組及通用序列操作

參考鏈接: Python | 重點數據類型 (字符串,列表,元組,迭代)(String, List, Tuple, Iteration)

序列是Python中最基本的數據結構(一些基本特性類似于C++中的數組模板類),序列中的每一個元素都有相應的位置序號,從0開始。列表和元組屬于序列,因此用于通用序列的操作都可以應用于它們,同時它們也有各自獨特的方法。

?

通用序列操作?

?

所有的序列類型都可以進行某些特定的操作,例如索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、迭代(iteration)、成員資格檢查等。

?

索引(indexing)?

?

序列中的所有元素都有對應的位置序號——從0開始遞增。我們通過其對應序號訪問某一個或某些元素的過程就是索引的過程。除了整數索引外,Python還提供了負數索引以更方便地訪問序列元素。使用負數索引時,Python會從序列的右邊,也就是最后一個元素開始計數,-1代表最后一個元素,-2代表倒數第二個元素,依此類推(沒有-0)。 序列字面值能夠直接使用索引,而不需要通過變量來訪問。??

如果一個函數調用返回一個序列,那么可以直接對返回結果(也就是序列)進行索引操作。?

?

#!/usr/bin/env python

str1 = "Hello World!"

print str1[0]

print str1[-1]

?

print "Hello World!"[0]

?

str2 = raw_input("Please enter a string: ")[2]

print str2

?

?

?

??

分片(slicing)?

?

分片操作可以用來訪問序列中一定范圍內的元素。分片操作通過一個冒號隔開的兩個索引來實現,此時將訪問包括第一個索引序號,不包括第二個索引序號的范圍內的序列元素,也即左閉右開的半開區間。 Python的索引操作支持負數索引,因此也可以用負數索引方便地訪問序列中排在末尾部分的元素。需要注意的是,由于分片的索引范圍是左閉右開區間,因此如果需要訪問最后一個元素時,需要置空第二個索引。同樣如果要從第一個元素開始訪問,也可以置空第一個索引(與0效果相同)。 在分片的時候,我們還可以設置第三個參數——步長,來滿足我們的一些特殊需求。默認情況下步長參數的值為1,我們可以顯式地設置它。??

步長參數甚至支持負數,如果步長為負數,分片操作將會從右往左提取序列元素,使用負數步長時第一個索引序號必須大于第二個索引序號,否則分片結果會為空。對于負數步長,分片操作依然按照左閉右開區間來提取序列元素。?

?

?

#!/usr/bin/env python

str = "Hello, world!"

print str[0:3]

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print num[1:6]

print num[-3:-1]

print num[-3:]

print num[:3]

print num[:]

print num[0:8:2]

print num[8:0:-2]

?

?

?

?

加(adding)?

序列相加的操作很簡單,可以將序列連接在一起,但加操作只能應用于相同類型的序列,例如列表和字符串是不能連接在一起的。?

?

#!/usr/bin/env python

str1 = "Hello, "

str2 = "world"

print str1+str2

num1 = [1, 2, 3]

num2 = [4, 5, 6]

print num1+num2

?

?

?

?

?

?

乘(multiplying)?

?

序列的乘操作是一個序列乘一個數字n(正整數),其結果會生成一個新的序列,這個新序列內的元素為原來的序列被重復n次。??

利用序列的乘操作可以初始化列表。Python中有一個內建值None,與C中的NULL和C++中的nullptr一樣,代表空值。因此可以利用空值None結合乘操作來創建或者初始化序列。?

?

str = "Hello"

print str*3

init = [None]*10

print init

?

?

? ?

成員資格檢查?

這個操作可以檢查一個值是否在序列中,用in運算符實現,該運算符返回一個布爾值。?

?

str = "This is a string."

print 'i' in str

print 'o' in str

?

?

?

?

長度、最小值和最大值?

內建函數len、min和max分別返回序列的元素數量、最小值、最大值。?

?

num = [8, 24, 33, 135, 1024]

print len(num)

print min(num), max(num)

?

?

?

?

列表(List)?

列表是一種可變的序列,可以改變列表的內容。列表的定義方式在通用序列操作中已經出現了很多次:使用中括號[]將列表括起來,列表元素之間用逗號“,”隔開。除此之外,Python還提供了一個非常好用的內建函數list來將各種類型的序列轉化為列表。?

?

demo_of_list1 = [1, 2, 3]

print demo_of_list1

demo_of_list2 = list("Hello, world")

print demo_of_list2

?

?

?

?

列表操作?

1.元素賦值??

結合索引和賦值語句,可以很簡單地對列表元素進行賦值(列表元素必須存在)。?

?

#!/usr/bin/env python

tmp = [None]*10

print tmp

tmp[2] = 24

print tmp

?

?

?

?

2.元素刪除??

使用del語句就可以刪除元素。?

?

#!/usr/bin/env python

tmp = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print tmp

del tmp[0]

print tmp

del tmp[0:8]

print tmp

?

?

?

?

3.分片賦值??

結合分片操作可以對列表中的多個元素進行賦值,甚至變相達到插入、刪除元素的目的。?

?

#!/usr/bin/env python

#coding:utf-8

num = [ 1, 2, 3, 4, 5, 6]

print num

num[0:2] = [24, 33]

print num

num[:2] = [0, 1, 2] #替換元素長度可以與被替換部分不同

print num

num[3:3] = [33, 24, 794]

print num

num[:6] = []

print num

?

?

?

列表方法?

1.append append用于在列表末尾追加新的對象,append方法直接修改原列表,無返回值,且一次方法調用只能追加一個對象。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num = [1, 2, 3]

print num

num.append(4)

print num

num.append([5, 6]) #對append方法而言,這是一個元素而不是兩個元素(也即一個對象)

print num

?

?

?

2.count count方法統計某個元素在列表中出現的次數,返回值為統計次數。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

str =list("This is a string")

print str.count("t")

print str.count("i")

print " "

num = [1, 2, 2, 3, 4, 5, 6, 6, 6]

print num.count(2)

print num.count(6)

?

?

?

3.extend extend方法可以用一個列表去擴展原有的列表,與連接操作(“+”)不同的是,extend方法修改了被擴展的序列且沒有返回值,而連接操作會返回一個新列表。用分片賦值操作也可以實現相同的結果。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num1 = [1, 2, 3]

num2 = [4, 5]

print num1

print num2

num1.extend(num2) #對象為被擴展序列,方法接受的參數為擴展序列

print num1

print num2

?

?

?

4.index index方法用于從列表中找出指定值的第一個匹配項的位置并返回其索引值。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

tmp = list("Hello")

print tmp

print tmp.index("l")

?

?

?

5.insert insert方法將一個對象插入到列表中,該方法接受的第一個參數為插入位置(索引),第二個參數為對象。insert方法一次只能插入一個元素。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num1 = [1, 2, 3]

num2 = [4, 5]

print num1

print num2

num1.insert(1, num2)

print num1

num2.insert(0, 33)

print num2

?

?

6.pop pop方法用于移除列表中的一個元素(默認是最后一個,也可以指定刪除某一元素),并且返回該元素的值。使用pop方法和append方法可以實現棧操作,而隊列操作可以用pop方法和insert方法來完成。?

?

#!/usr/bin/env python

#coding:utf-8

?

num = [1, 2, 3, 4, 5]

print num

print num.pop()

print num

print num.pop(1) #指定刪除

print num

?

?

?

7.remove remove方法用于移除列表中指定值的第一個匹配項,remove方法沒有返回值。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

tmp = list("Hello")

print tmp

tmp.remove("l")

print tmp

?

?

?

8.reverse reverse方法將列表倒序存放(直接修改列表),沒有返回值。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num = [1, 2, 3, 4, 5, 6]

print num

num.reverse()

print num

?

?

?

9.sort sort方法用于對列表進行排序(直接修改原列表),如果想要保留原列表就需要自行創建副本。sort方法的排序算法是固定的,而且默認升序。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num1 = [33, 8, 24, 1, 5, 0, 9]

num2 = [101, 24, 135, 6, 1024]

print "num1: ", num1

num1.sort()

print "排序后:", num1

tmp = num2 #自行創建副本

tmp.sort()

print "num2: ", num2

print "tmp: ", tmp

?

?

?

如果希望元素能夠按照特定方式排序,那么可以通過compare(x, y)的形式自定義比較函數。此外,sort方法還有另外兩個可選參數key和reverse。關于sort方法的高級應用寫在另一篇博文中。

?

元組(Tuple)?

元組也是序列的一種,但與列表不同的是,元組不能修改(元組與列表在技術實現上不同)。元組由圓括號括起元組元素,元素之間用逗號分隔。還可以用tuple函數將一個序列轉化為元組。?

?

#!/usr/bin/env python

#coding:utf-8

?

tmp1 = (1, 2, 3)

print tmp1

tmp2 = tuple("python")

print tmp2

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540595.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540595.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540595.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

onActivityResult()后onresume()

當你調用完一個存在的activity之后,onActivityResult將會返回以下數據:你調用時發出的requestCode、被調用activity的結果標志resultCode(如RESULT_OK)和其他的額外數據。我們期望的都是得到RESULT_OK,表示調用成功&am…

java反射用法示例_Java包| 類型,用法,示例

java反射用法示例配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a short and concise form) a group of classes,interfaces,enumerations, sub packages, etc. In real world, application is developed in such a manner so that …

[轉載] python 元組tuple - python基礎入門(14)

參考鏈接: Python元組Tuple 目錄 一.元組tuple定義 二.元組tuple查詢 三.元組tuple不支持刪除/修改數據 四.元組tuple與列表list的相互轉換 五.重點總結 在上一篇文章中我們講解了關于python列表List的相關內容,今天給大家解釋一下列表List的…

MaxCompute 2.0—從ODPS到MaxCompute

從ODPS到MaxCompute-阿里大數據的進化之路是一個商用大數據系統發展史,一個商業大數據系統要解決的問題有可靠性,高性能,安全性等等六個方面。內部產品名ODPS的MaxCompute,是阿里巴巴內部發展的一個高效能、低成本,完全…

python數值類型_Python數值類型

python數值類型In programming, Data Types are an essential concept. Data of various types can be stored in variables as per the task we want the variables to perform. 在編程中,數據類型是必不可少的概念。 根據我們希望變量執行的任務,各種類…

[轉載] Python高級變量(列表、元組、字典、字符串、公共方法)

參考鏈接: Python | 重點數據類型 (字符串,列表,元組,迭代)(String, List, Tuple, Iteration) 文章目錄 高級變量類型目標知識點回顧 01. 列表1.1 列表的定義1.2 列表常用操作del 關鍵字(科普)關鍵字、函數…

python 操作mongodb數據庫參考文檔

參考文檔鏈接:https://pypi.python.org/pypi/pymongo pymongo的參考文檔http://api.mongodb.com/python/current/tutorial.html mongoengine的參考文檔:https://pypi.python.org/pypi/mongoengine#downloads Flask-MongoEngine的參考文檔:htt…

php eot eod_EOD的完整形式是什么?

php eot eodEOD:一天結束 (EOD: End Of Day) EOD is an abbreviation of "End Of Day". EOD是“ End Of Day”的縮寫 。 It is an expression, which is commonly used in the Gmail platform. In a particular mail, if the sender wants to give the d…

[轉載] python元組 tuple

參考鏈接: Python元組Tuple 類型特點:可以存放多個、 可以重復的,有順序的數據,數據不可變。 如果項目中需要定義多個數據到一個變量中存放 存放的數據,在項目運行過程中,會發生數據的增加、修改、刪除…

aio nio aio_AIO的完整形式是什么?

aio nio aioAIO:多合一 (AIO: All-in-one) AIO is an abbreviation of "all-in-one", which is also known as an MFP (multi-function product/printer/peripheral), multi-functional or multi-function device (MFD). It is a workplace machine that …

[轉載] python基礎入門二

參考鏈接: Python集合Set 寫代碼,有如下變量,請按照要求實現每個功能 (共6分,每小題各0.5分) name ” aleX” 1)移除 name 變量對應的值兩邊的空格,并輸出處理結果 2) 判斷 name 變量對應的值是否以 “al” 開頭,并輸出結果?…

組合數據類型練習,英文詞頻統計實例上

1、字典實例:建立學生學號成績字典,做增刪改查遍歷操作。 建立: d{0001:99,0003:89,0004:98,0005:100,0006:78} 增:d[0002]79 刪:d.pop(0001) 改:d[0004]100 查:print(d[0002]) 遍歷操作&#x…

茱莉亞分形_茱莉亞的NaN Constant

茱莉亞分形Julia| NaN / Nan64常數 (Julia | NaN/Nan64 Constant) Nan / Nan64 is a constant of the Float64 type in Julia programming language, it represents "not-a-number" value. Nan / Nan64是Julia編程語言中Float64類型的常量,它表示“非數字…

[轉載] Python3 數組

參考鏈接: Python中的Array | 數組1(簡介和功能) 一、list和array的區別 Python的數組通過Numpy包的array實現。 Python里二者最大的區別是,list可以存儲不同類型的數據,而array只能存儲相同類型的數據。 import numpy #直接定義 a […

201671010128 2017-09-24《Java程序設計》之繼承

1.繼承的概念及理解: 繼承是java面向對象編程技術的一塊基石,因為它允許創建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法&#xff…

紫外線的形式是什么?

紫外線:紫外線 (UV: Ultraviolet) UV is an abbreviation of Ultraviolet. In RO water purifiers, the bacteria or germs which are present in the water cannot get killed by reverse osmosis process but this process can banish the dissolved solids and i…

[js高手之路] html5 canvas系列教程 - 掌握畫直線圖形的常用API

我們接著上文[js高手之路] html5 canvas系列教程 - 認識canvas以及基本使用方法繼續. 一、直線的繪制 cxt.moveTo( x1, y1 ): 將畫筆移動到x1, y1這個點 cxt.lineTo( x2, y2 ):將畫筆從起點開始畫直線,一直畫到終點坐標( x2, y2 ) cxt.stroke…

金礦問題

Description: 描述: This is a standard interview problem featured in interview coding rounds of Amazon, Flipkart. 這是亞馬遜Flipkart的采訪編碼回合中的標準采訪問題。 Problem statement: 問題陳述: Given a gold mine of n*m dimensions, e…

[轉載] python中的數組類型及特點

參考鏈接: Python中的Array | 數組2(簡介和功能) 名稱 表示方法示例 是否有序 函數方法(增刪等) 特點 List 類型表示:L L [Adam, 95.5, Lisa, 85] 有序 增加:(1)L.append(Paul),增加…

puppet

Puppet前期環境(網絡、解析、yum源、NTP)在上一章節已經準備就緒,接下來我們就開始安裝Puppet了,安裝Puppet其實很簡單,官方已經提供了yum源,只需要自己將所需要的安裝包下載下來然后做成本地yum源即可使用…