Python基礎:列表、元組和字典
阿新 • • 發佈:2018-12-21
Python中最為常用的資料容器有列表、元組和字典。是使用Python必須掌握的基礎。本文詳細介紹列表、元組和字典,以及字典的兩種(按照key排序和按照value排序)排序方法。
一、列表
1.建立
list1 = [1,2,3,4,5,6]
list2 = ['a','b','c','d','e']
list3 = [1,'2',[3,"a"],(5,6)]
特殊的建立方法:
li = [x for x in range(5)] #[0, 1, 2, 3, 4] li = [(x, x * 2) for x in range(5)] #[(0, 0), (1, 2), (2, 4), (3, 6), (4, 8)] li = [x for x in range(5) if (x % 2) == 0] #[0, 2, 4]
2.訪問
list1[1] #2
list3[-1] #(5,6)
3.切片
list1[::2] #[1, 3, 5]
list3[2:-1] #[[3, 'a']]
list3[2][1] #'a'
4.修改
list1[0] = 0 #[0, 2, 3, 4, 5, 6]
list2[2] = ["b"] #['a', 'b', ['b'], 'd', 'e']
list3[0:2] = [1.1,'2.2'] #[1.1, '2.2', [3, 'a'], (5, 6)]
5.刪除
list1 = [1,2,3,4,5,6]
del list1[0] #[2, 3, 4, 5, 6]
del list1[1:2] #[1, 4, 5, 6]
list1[1:2] = [] #[1, 4, 5, 6]
6.操作符('+', '*' , in, not in)
list1 = [1,2,3,4,5,6] list2 = ['a','b','c','d','e'] li = list1 + list2 #[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e'] li = list1 * 2 #[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6] 5 in list1 #True 8 not in list1 #True
7.函式方法
li = [0,1,2,3,3,5]
#列表長度
len(li) #6
#列表最大值
max(li) #5
#列表最小值
min(li) #0
#在末尾增加元素
li.append(6) #[0, 1, 2, 3, 3, 5, 6]
#元素出現的次數
li.count(3) #2
#返回元素第一次出現的索引
li.index(3) #3 (沒有該元素會跑出異常)
#在index為7的位置插入元素9
li.insert(7,9) #[0, 1, 2, 3, 3, 5, 9]
#刪除index位置的元素
li.pop(4) #[0, 1, 2, 3, 5]
#移除指定元素的第一個值
li.remove(3) #[0, 1, 2, 3, 5]
#翻轉列表
li.reverse() #[5, 3, 3, 2, 1, 0]
#排序
li.sort(reverse=False) #[0,1,2,3,3,5]
#清空列表
li.clear()
del li[:]
li = []
二、元組
1.建立
元組的元素可以直接賦值給多個變數,但變數數必須與元素數量一致。Python中函式Function是可以返回多個值的,這時返回的就是元組型別。
a, b, c = (1, 2, 3)
d = ('a', 'b', 'c')
print(a) #1
print(b) #2
print(c) #3
print(d) ('a', 'b', 'c')
2.訪問
d = ('a', 'b', 'c')
d[1] #'a'
d[1:3] #('b', 'c')
3.操作符
a = (1, 2, 3)
d = ('a', 'b', 'c')
a + d #(1, 2, 3, 'a', 'b', 'c')
d * 2 #('a', 'b', 'c', 'a', 'b', 'c')
4.元組不可以修改、刪除元素
三、字典
1.建立
d = {key1 : value1, key2 : value2 }
特殊建立方法:
{x: x**2 for x in (2, 4, 6)} #{2: 4, 4: 16, 6: 36}
2.訪問
dic = {'a': 1, 'b': [1, 2, 3], 'c':{1:2}}
dic['b'][2] #3
dic['a'] #1
dic['b'] #[1, 2, 3]
dic['c'][1] #2
3.修改
dic = {'a': 1, 'b': [1, 2, 3]}
dic['b'][1] = 0 #{'a': 1, 'b': [1, 0, 3]}
4.刪除
dic = {'a': 1, 'b': [1, 2, 3]}
#刪除元素
del dic['a'] #{'b': [1, 2, 3]}
#刪除字典
del dic
5.函式方法
dic = {'a': 1, 'b': 2, 'c':3}
len(dic) #3
str(dic) #"{'a': 1, 'b': 2, 'c': 3}"
'a' in dic #True
dic.get('a') #1
dic.items() #dict_items([('a', 1), ('b', 1), ('c', 3)])
dic.keys() #dict_keys(['a', 'b', 'c'])
dic.values() #dict_values([1, 1, 3])
dic.update({'a':0}) #{'a': 0, 'b': 2, 'c': 3}
dic.pop('b') #{'a': 0, 'c': 3}
6.字典排序
按key排序:
dic = {'a': 2, 'c': 3, 'b':1}
sorted(dic.items(), key=lambda d: d[0])
#輸出:
[('a', 2), ('b', 1), ('c', 3)]
按value排序:
dic = {'a': 2, 'c': 3, 'b':1}
sorted(dic.items(), key=lambda d: d[1])
#輸出:
[('b', 1), ('a', 2), ('c', 3)]
總結:
-
列表是一種無序的、可重複的資料序列,可以隨時新增、刪除其中的元素。
-
列表使用方括號建立,使用逗號分隔元素
-
列表元素值可以是任意型別,包括變數
-
元組與列表類似,不同之處在於元組的元素不能修改
-
元組使用小括號,列表使用方括號
-
沒有 append(),insert() 這樣進行修改的方法,其他方法都與列表一樣
-
字典是另一種可變容器模型,可儲存任意型別物件
-
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號{}中
-
鍵必須是唯一的,但值則不必,值可以是任意資料型別
-
如果用字典裡沒有的鍵訪問資料,會報錯
-
字典的元素沒有順序,不能通過下標引用元素,通過鍵來引用
-
字典內部存放的順序和 key 放入的順序是沒有關係的