1. 程式人生 > >Python基礎:列表、元組和字典

Python基礎:列表、元組和字典

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 放入的順序是沒有關係的