在python中,最基本的資料結構為序列(sequence)。最常用的序列:列表、元組和字串序列中的每個元素都有編號,即其位置或索引,其中第乙個元素的索引為0,第二個元素的索引
為1,依此類推。在有些程式語言中,從1開始給序列中的元素編號,但從0開始指出相對於序列
開頭的偏移量。這顯得更自然,同時可迴繞到序列末尾,用負索引表示序列末尾元素的位置。
索引
'hello'[1
]='e'
切片slicing
訪問特定範圍內的元素
numbers =[1
,2,3
,4,5
,6,7
,8,9
,10]
例項
結果numbers[-3:-1]
[8, 9]
number[-3:0]
number[6:-2]
[7,8]
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[0:10:-2]
numbers[5::-2]
[6, 4, 2]
序列相加
[1, 2, 3] + [4, 5, 6] ⇒
\rightarrow
⇒ [1, 2, 3, 4, 5, 6]
乘法序列與數x相乘時,將重複這個序列x次來建立乙個新序列:
『python』 * 5 ⇒
\rightarrow
⇒ 『pythonpythonpythonpythonpython』
none、空列表和初始化
: 空列表;
none:表示什麼都沒有,seq = [none] * 10 要將列表的長度初始化為10.。
成員資格
要檢查特定的值是否包含在序列中,可使用運算子in
# 檢查使用者名稱和pin碼
database =[[
'albert'
,'1234'],
['dilbert'
,'4242'],
['smith'
,'7524'],
['jones'
,'9843']]
username =
input
('user name: '
) pin =
input
('pin code: ')if
[username, pin]
in database:
print
('access granted'
)
長度、最小值和最大值
len()
min()
max()
list():鑑於不能像修改列表那樣修改字串,因此在有時,使用字串來建立列表很有幫助。list()是乙個類,而不是函式
list
('hello'
)
這裡,可將任何序列作為list的引數。
str1 =
list
('hello')''
.join(str1)
修改列表:給元素賦值
刪除元素
只需要使用del語句,del還可用於字典及變數
給切片賦值
>>
> name =
list
('perl'
)>>
> name
['p'
,'e'
,'r'
,'l'
]>>
> name[2:
]['r',
'l']
>>
> name[2:
]=list
('ar'
)>>
> name
['p'
,'e'
,'a'
,'r'
]
通過使用切片賦值,可將切片替換為長度與其不同的序列
>>
> name =
list
('perl'
)>>
> name[1:
]=list
('ython'
)>>
> name
['p'
,'y'
,'t'
,'h'
,'o'
,'n'
]
使用切片賦值還可在不替換原有元素的情況下插入新元素。
>>
> numbers =[1
,5]>>
> numbers[1:
1]=[
2,3,
4]>>
> numbers [1
,2,3
,4,5
]
在這裡,我「替換」了乙個空切片,相當於插入了乙個序列。你可採取相反的措施來刪除切片。
>>
> numbers [1
,2,3
,4,5
]>>
> numbers[1:
4]=[
]>>
> numbers [1
,5]
你可能猜到了,上述**與del numbers[1:4]等效。現在,你可自己嘗試執行步長不為1(乃至為負)的切片賦值了。
名稱功能
clear()
清空;類似於切片賦值語句lst[:]=
copy()
常規複製只是將另乙個名稱關聯到列表,而copy將建立乙個副本
count()
計算指定的元素在列表中出現了多少次
extend()
能夠同時將多個值附加到列表的末尾,與』+'運算子不同,將修改被擴充套件的序列
index()
在列表中查詢指定值第一次出現的索引:
insert()
將乙個物件插入列表
pop()
從列表中刪除最後乙個元素;pop是唯一既修改列表又返回乙個非none值的列表方法,pop(0)?
remove()
刪除第乙個為指定值的元素,remove是就地修改且不返回值的方法之一。不同於pop的是,它修改列表,但不返回任何值。
reverse()
按相反的順序排列列表中的元素。reverse修改列表,但不返回任何值
sort()
對列表就地排序。使其元素按順序排列,而不是返回排序後的列表的副本。sorted()函式可以用於任何序列,但總是返回乙個列表。
如何表示只包含乙個值的元組呢?這有點特殊:雖然只有乙個值,也必須在它後面加上逗號。 如:(42, )
函式tuple()與list()很像:它將乙個序列作為引數,將其轉換為元組。如果引數是元組,就原封不動地返回它。tuple([1,2,3]) ⇒
\rightarrow
⇒(1,2,3)
函 數描 述
len(seq)
返回序列的長度
list(seq)
將序列轉換為列表
max(args)
返回序列或一組引數中的最大值
min(args)
返回序列和一組引數中的最小值
reversed(seq)
讓你能夠反向迭代序列
sorted(seq)
返回乙個有序列表,其中包含指定序列中的所有元素
tuple(seq)
將序列轉換為元組
PYTHON 列表與元組
列表簡介 是一種內建的資料結構,用來儲存一系列的元素 同js一樣,由於解釋性語言不必宣告資料型別,所以陣列的元素也可以很靈或的不相同。列表的運算 index索引運算 切片運算 拼接運算 重複運算 成員運算in 長度運算len 迴圈for 列表方法 list.intex 可以返回任意的方法 my li...
Python元組與列表
序列型別 元組 tuple 是序列型別中比較特殊的型別,因為它一旦建立就不能被修改。元組型別在表達固定資料項 函式多返回值 多變數同步賦值 迴圈遍歷等情況下十分有用。python中元組採用逗號和圓括號 可選 來表示。序列型別有12個通用的操作符和函式 操作符描述 x in s 如果x是s的元素,返回...
Python列表與元組
列表和元組是python中最常用的兩種資料結構,字典是第三種。相同點 1.都是序列 2.都可以儲存任何資料型別 3.可以通過索引訪問 不同點 語法差異 使用方括號建立列表,而使用括號 建立元組。請看以下示例 是否可變 列表是可變的,而元組是不可變的,這標誌著兩者之間的關鍵差異。注 如果不了解什麼是可...