Python 列表 list 陣列 array 常用操作集錦

kboypkb發表於2021-09-09


Python中的列表(list)類似於C#中的可變陣列(ArrayList),用於順序儲存結構。

建立列表

sample_list = ['a',1,('a','b')]

Python 列表操作

sample_list = ['a','b',0,1,3]

得到列表中的某一個值

value_start = sample_list[0]

end_value = sample_list[-1]

刪除列表的第一個值

del sample_list[0]

在列表中插入一個值

sample_list[0:0] = ['sample value']

得到列表的長度

list_length = len(sample_list)

列表遍歷

for element in sample_list:

print(element)

Python 列表高階操作/技巧

產生一個數值遞增列表

num_inc_list = range(30)

#will return a list [0,1,2,...,29]

用某個固定值初始化列表

initial_value = 0

list_length = 5

sample_list = [ initial_value for i in range(10)]

sample_list = [initial_value]*list_length

# sample_list ==[0,0,0,0,0]

附:python內建型別

1、list:列表(即動態陣列,C++標準庫的vector,但可含不同型別的元素於一個list中)

a = ["I","you","he","she"] #元素可為任何型別。

下標:按下標讀寫,就當作陣列處理

以0開始,有負下標的使用

0第一個元素,-1最後一個元素,

-len第一個元 素,len-1最後一個元素

取list的元素數量

len(list) #list的長度。實際該方法是呼叫了此物件的__len__(self)方法。

建立連續的list

L = range(1,5) #即 L=[1,2,3,4],不含最後一個元素

L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

list的方法

L.append(var) #追加元素

L.insert(index,var)

L.pop(var) #返回最後一個元素,並從list中刪除之

L.remove(var) #刪除第一次出現的該元素

L.count(var) #該元素在列表中出現的個數

L.index(var) #該元素的位置,無則拋異常

L.extend(list) #追加list,即合併list到L上

L.sort() #排序

L.reverse() #倒序

list 運算子:,+,*,關鍵字del

a[1:] #片段運算子,用於子list的提取

[1,2]+[3,4] #為[1,2,3,4]。同extend()

[2]*4 #為[2,2,2,2]

del L[1] #刪除指定下標的元素

del L[1:3] #刪除指定下標範圍的元素

list的複製

L1 = L #L1為L的別名,用C來說就是指標地址相同,對L1操作即對L操作。函式引數就是這樣傳遞的

L1 = L[:] #L1為L的克隆,即另一個複製。

list comprehension

[ <expr1> for k in L if <expr2> ]

2、dictionary: 字典(即C++標準庫的map)

dict = {‘ob1′:’computer’, ‘ob2′:’mouse’, ‘ob3′:’printer’}

每一個元素是pair,包含key、value兩部分。key是Integer或string型別,value 是任意型別。

鍵是唯一的,字典只認最後一個賦的鍵值。

dictionary的方法

D.get(key, 0) #同dict[key],多了個沒有則返回預設值,0。[]沒有則拋異常

D.has_key(key) #有該鍵返回TRUE,否則FALSE

D.keys() #返回字典鍵的列表

D.values()

D.items()

D.update(dict2) #增加合併字典

D.popitem() #得到一個pair,並從字典中刪除它。已空則拋異常

D.clear() #清空字典,同del dict

D.copy() #複製字典

D.cmp(dict1,dict2) #比較字典,(優先順序為元素個數、鍵大小、鍵值大小)

#第一個大返回1,小返回-1,一樣返回0

dictionary的複製

dict1 = dict #別名

dict2=dict.copy() #克隆,即另一個複製。

3、tuple:元組(即常量陣列)

tuple = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)

可以用list的 [],:運算子提取元素。就是不能直接修改元素。

4、string: 字串(即不能修改的字元list)

str = “Hello My friend”

字串是一個整 體。如果你想直接修改字串的某一部分,是不可能的。但我們能夠讀出字串的某一部分。

子字串的提取

str[:6]

字串包含 判斷運算子:in,not in

“He” in str

“she” not in str

string模組,還提供了很多方法,如

S.find(substring, [start [,end]]) #可指範圍查詢子串,返回索引值,否則返回-1

S.rfind(substring,[start [,end]]) #反向查詢

S.index(substring,[start [,end]]) #同find,只是找不到產生ValueError異常

S.rindex(substring,[start [,end]])#同上反向查詢

S.count(substring,[start [,end]]) #返回找到子串的個數

S.lowercase()

S.capitalize() #首字母大寫

S.lower() #轉小寫

S.upper() #轉大寫

S.swapcase() #大小寫互換

S.split(str, ‘ ‘) #將string轉list,以空格切分

S.join(list, ‘ ‘) #將list轉string,以空格連線

處理字串的內建函式

len(str) #串長度

cmp(“my friend”, str) #字串比較。第一個大,返回1

max(‘abcxyz’) #尋找字串中最大的字元

min(‘abcxyz’) #尋找字串中最小的字元

string的轉換

oat(str) #變成浮點數,float(“1e-1″) 結果為0.1

int(str) #變成整型, int(“12″) 結果為12

int(str,base) #變成base進位制整型數,int(“11″,2) 結果為2

long(str) #變成長整型,

long(str,base) #變成base進位制長整型,

字串的格式化(注意其跳脫字元,大多如C語言的,略)

str_format % (引數列表)

©著作權歸作者所有:來自51CTO部落格作者AIOPS_DBA的原創作品,如需轉載,請註明出處,否則將追究法律責任


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1916/viewspace-2820313/,如需轉載,請註明出處,否則將追究法律責任。

相關文章