Python 列表和元祖

2021-07-05 05:29:59 字數 4449 閱讀 2551

在python中,最基本的資料結構是序列,

序列包含:

其他的內建序列型別有:

一、通用序列操作

所有的序列型別都可以進行某些特定的操作。這些操作包括:索引、分片、加、乘及檢查某個元素是否屬於序列的成員。

1.1 索引

>>> name = 'hongxue'

>>> name[0]

'h'>>> name[0:3]

'hon'

這就是索引,字串是乙個由字元組成的序列。索引0指向第1個元素,在當前例子中就是h

可以通過索引獲取元素

>>> str = raw_input('year: ')[3]

year:2015

>>> str

'5'

1.2 分片

索引是訪問單個元素,分片與索引類似,但是它來訪問的是一定範圍內的元素,分片通過冒號隔開的兩個索引實現:

分片操作對於提取序列的一部分是很有用的。而編號在這裡顯得尤為重要。第1個索引是要提取的第1個元素的編號,而最後的索引則是分片之後剩餘部分的第1元素的編號。

(1) 優雅的捷徑

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

>>> numbers[0:3]

[1,2,3]

>>> numbers[3:8]

[4,5,6,7,8]

>>> numbers[2:7]

[3,4,5,6,7]

numbers[-3:-1]

[8,9]

numbers[-3:]

[8,9,10]

numbers[:3]

[1,2,3]

numbers[:]

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

分片示例:

>>> name = raw_input('please input your name:')[0:4]

please input your name:hongxue

>>>

print name

'hong'

(2) 更大的步長

進行分片的時候,分片的開始和結束點需要進行指定(不管是直接還是間接)。而另外乙個引數–步長通常都是隱式設定的。預設為1,則可以手動進行設定

>>> print

numbers

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

>>> numbers

[0:10:2]

[1,3,5,7,9]

>>> numbers

[3:6:3]

[4]>>> numbers

[::4]

[1,5,9]

當然,步長可以是負數,此時分片從右到左提取

>>> numbers

[8:3:-1]

[9,8,7,6,5]

>>> numbers

[10:0:-2]

['10,8,6,4,2']

>>> numbers

[::-2]

[10,8,6,4,2]

>>> numbers

[5::-2]

[6,4,2]

>>> numbers

[:5:-2]

[10,8]

對於乙個正數步長,python會從序列的頭部開始向右提取元素,直到最後乙個元素,

對於乙個負數步長,python會從序列的尾部開始向左提取元素,直到第乙個元素。

1.3 序列相加

通過使用加運算子可以進行序列的連線操作:

>>> [1,2,3] + [4,5,6]

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

>>> x = ['hong']

>>> y = ['xue']

>>> x + y

['hong','xue']

當然,列表和字串是無法連線在一起的,儘管它們都是序列。

兩種型別相同的序列才能進行連線操作,例如:

>>> x = '123'

>>> y = ['4,5,6']

>>> x + y

traceback (most recent call last):

file "", line 1, in

typeerror: cannot concatenate 'str'

and'list' objects

1.4 乘法

用數字x乘以乙個序列會生成新的序列,而在新的序列中,原來的序列將被重複n次

>>> 

'python' * 5

'pythonpythonpythonpythonpython'

>>> [30] * 10

'30,30,30,30,30,30,30,30,30,30'

none、空列表和初始化

空列表可以簡單的通過兩個中括號進行表示,裡面什麼也沒有。但是,如果想建立乙個占用十個元素空間,卻不包括任何有用內容的列表,可以想前面那樣,[42] * 10,這樣會更加實際一些。然而,有時候可能會需要乙個值來代表空值—意味著裡面沒有任何東西,這個時候就需要用到none,none是python的內鍵值,它的確切含義是」這裡什麼也沒有」。

建立占用十個元素的空間

>>> * 10

建立乙個空值

>>> value = [none] * 10

>>> value

[none,none,none,none,none,none,none,none,none,none]

**清單   序列(字串)乘法表示

sentence = raw_input('sentence: ')

screen_width =80

text_width = len(setence)

box_width = text_width +6

left_margin = (screen_width - box_width) /2

print

print

' ' * left_margin + '+' + '-' * (box_width-2) + '+'

print

' ' * left_margin + '| ' + ' ' * text_width + '|'

print

' ' * left_margin + '| ' + sentence + '|'

print

' ' * left_margin + '| ' + ' ' * text_width + '|'

print

' ' * left_margin + '+' + 『-』 * (box_width-2) + '+'

print

1.5 成員資格

為了檢查乙個值是否在序列中,可以使用in運算子,這個運算子檢查某個條件是否為真,然後返回相應的值,也叫做』布林值』

條件為真返回true

條件為假返回false

>>> permissions='rw'

>>>

'r'in permissions

>>>

'w'in permissions

>>>

'x'in permissions

#檢查使用者是否在name列表中

>>> name = ['hongxue','xiaomao','yixiao']

>>>

'hongxue'

in name

>>>

'xiaomao'

in name

#檢查使用者名稱和pin碼

>>> database = [['hongxue','123'],['yixiao','456'],['xiaomao','789']]

>>> username = raw_input('user name: ')

>>> pin = raw_input('pin code: ')

>>>

if [username,pin] in database : print

'access granted'

1.6 長度、最小值和最大值

內建函式len、min和max非常有用

len函式返回序列中所包含元素的數量

min函式返回序列中最小的元素

max函式返回序列中最大的元素

numbers = [456,214,999]

>>> len(numbers) #返回元素個數

3>>> min(numbers) #返回最小元素

214>>> max(numbers) #返回最大元素

999

python 列表和元祖

count item 表示統計列表 元組中 item 出現的次數。l 1,2,3,4,item 45,item print l print l 0 l 3 99 print l print l.count item index item 表示返回列表 元組中 item 第一次出現的索引。l 1,2,...

python之列表和元祖

python之列表和元祖 資料結構是通過某種方式 例如對元素進行編號 組織在一起的資料元素的集合,這些元素不僅是數字元素還可以是其他的資料結構。在python中最基本的資料結構是序列 sequence 序列中的每個元素都會分配乙個序號就像是每位同學都有學號一樣。這個序號代表著這個元素的位置,從0開始...

python 列表 元祖和字典

一 列表迴圈 names 哈哈 嘿嘿 while false i 0 元素下標 while i 如圖 for 迴圈做法 1.for i in range len names print names i 2.for i in names print i 1,2,5,7 是 以split 來分割,返回值...