Python【系列教程】之list(列表),tuple(元組),dict(字典)

一、列表和元組的通用用法

(1)

# 定義list
myList = ["a", 20, "python"]
print(myList)
# 定義元組
myTuple = ('a', 20, 'python')
print(myTuple)
# list,元組和 str的用法類似
print(myList[0])
print(myList[-1])

print(myTuple[0])
print(myTuple[-1])
a_tuple = ('crazyit ', 20, 1.2)
b_tuple = (127, 'crazyit', 'fkit', 3.33)
print(a_tuple)
print(b_tuple)
# 兩個元組相加
result = a_tuple + b_tuple
print(result)
# 兩個list相加
print(['a', 'b'] + ['c', 'd'])
# 將a_tuple元組乘3
print(a_tuple * 3)
# 將myList 乘3
print(myList * 3)
# in的用法和str的用法類似
print('x' in myList)

print(len(myList))
print(max(myList))
print(min(myList))

(2)序列封包和序列解包

python還提供了序列封包( Sequ nce Packing )和序列解包( Sequence Unpacking )的功能 ,簡單來說 Python 允許支持 以下兩種賦值方式。

1.程序把多個值賦給一個變量時, Python 會自動將多個值封裝成元組。這種功能被稱爲序列 封包

2.程序允許將序列(元組或列表等)直接賦值給多個變量,此時序列的各元素會被依次賦值 給每個變量(要求序列的元素個數和變 個數相等)。這種功能被稱爲序列解包。

# 序列封包
vals = 10, 20, 30
print(vals, "vals的數據類型是:", type(vals))
print(vals[1])
a_tuple = tuple(range(1, 10, 2))
# 序列解包,
a, b, c, d, e = a_tuple
print(a, b, c, d, e)
a_list = ['kit', 'yit']
a_str, b_str = a_list
# first second 保存前兩個元素, rest 列表包含剩下的元素
first, second, *rest = range(10)
print(first)
print(second)
print(rest)
# last 保存最後一個元素, begin 保存前面剩下的元素
*begin, last = range(10)
print(begin)  # [0 , 1 , 2, 3 , 4, 5 , 6, 7 , 8]
print(last)  # 9
# first 保存第一個元素, last 保存最後一個元素, middle保存中間剩下的元素
first, *middle, last = range(10)
print(first)  # 0
print(middle)  # [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7, 8]
print(last)  # 9

 

二、使用列表

列表與元組最大的區別在於:元組是不可改變的,列表是可改變的 。元組支持的操作,列表基本上都支持 ;列表支持對元素的修改,而元主且則不支持。從這個角度來看,可以認爲列表是增強版的元組。

雖然大部分時候都 使用列表來代替元組,但如果程序不需要修改列表所包含的 元素 ,那麼使用元組代替列表會更安全。

a_tuple = ('cazy', 20, -1.2)
#將元組轉換成列表
a_list = list(a_tuple)
print(a_list)
#使用range()函數創建區間range對象
a_range = range(1,5)
print(a_range)
#將區間轉換成列表
b_list = list(a_range)
print(b_list)
#創建區間指定步長
c_list = list(range(4,20,3))
print(c_list)

與list()對應的是, Python 也提供了一個 tuple () 函數,該 函數可用於 將列表、區間 range 等 對象轉換爲元組。

如下代碼:

# 將列表轉換成元組
a_tuple = tuple(a_list)
print(a_tuple)
# 將區間轉換成元組
b_tuple = tuple(range(1, 5))
print(b_tuple)
# 創建區間時還指定了步長
c_tuple = tuple(range(4, 20, 3))
print(c_tuple)
# list追加元素
a_list = ['d', 'z']
a_list.append(50)
print(a_list)
a_list.append(('asdqw', 'qweqwe'))
a_list.append(['sad', 'asd'])
print(a_list)
"""append ()方法既可接收單個值,也可接收元組、列表等 ,但該方法只是把元組、列表當成單個
元素 這樣就會形成在列表中嵌套列表、嵌套元組的情形"""
"""如果希望不將被追加的列表當成 個整體,而只是追加列表
中的元素 ,則可使用列表的 exte nd()方法。"""
a_list.extend(['1', '2', '3', '4', '5', '6'])
print(a_list)
a_list.extend(range(97, 100))
print(a_list)
"""如果希望在列表中間增加元素,則可使用列表的 insert()方法,使用 insert()方法時要指
定將元素插入列表的哪個位置。"""

"""刪除列表元素使用del語句。del語句是python的一種語句,專門用於執行刪除操作,不僅可
用於刪除列表的元素,也可用於刪除變量等"""
"""使用 del 語句既可刪除列表中的單個元素,也可直接刪除列表的中間一段。例如如下代碼。"""
a_list = ['crazy', 20, -2.4, (3, 4), 'kit']
# 刪除第三個元素
del a_list[2]
print(a_list)
# 刪除第二個到第四個元素
del a_list[1:3]
print(a_list)
# 刪除第3個到倒數第2個(不包含)元素,間隔爲2
del a_list[2:-2:2]
print(a_list)

# 刪除 name 變量
name = 'crazy'
print(name)
del name
# list的remove函數,移除第一個匹配到的元素,如果沒有匹配到則報 ValueError
test_list = [1, 2, 3]
test_list.remove(1)
# 該方法用於清空列表的所有元素
test_list.clear()

# 修改列表元素
a_list = [2, 4, -3.4, 'crazy', 23]
a_list[2] = 5
print(a_list)
a_list[-2] = 'kll'
print(a_list)

b_list = list(range(1, 5))
# 將第2個到第4個(不包含)元素賦值爲新列表的元素
b_list[1:3] = ['a', 'b']
print(b_list)
#將第3個到第3個(不包含)元素賦值爲新列表的元素 就是插入元素
b_list[2:2] = ['x', 'y']
print(b_list)
#將第3個到第6個(不包含)元素賦值爲空列表,就是刪除元素
b_list[2:5] = []
print(b_list)
b_list[1:3] = 'charlie'
print(b_list)

c_list = list(range(1,10))
c_list[2:9:2] = ['a','b','c','d']
print(c_list)

#count():用於統計列表中某個元素出現的次數。
print(c_list.count('a'))
#index() :用 於判斷某個元素在列表中出現的位置
print(c_list.index('a'))
#pop():用於將列表當成“棧”使用實現元素出棧功能
c_list.append('last')
print(c_list.pop())
#reverse ():用於將列表中的元素反向存放
print(c_list.reverse())
#用於對列表元素排序。使用 len函數按照元素的長度排序,並且反序
print(c_list.sort(key=len,reverse=True))

 

三、使用字典

(1)字典的入門及創建字典

# 使用字典
scores = {'語文': 89, '數學': 92, '英文': 93}
# 空字典
empty_dict = {}
# 使用元組作爲dict的key
dict2 = {(20, 30): 'good', 30: 'bad'}

需要指出的是,元組可以作爲 diet的 key ,但列表不能作爲元組的 key 這是由於 diet 要求 key 必須是不可變類型,但列表是可變類型,因此列表不能作爲元組的 key

# 在使用 diet()函數創建字典時 可以傳入多個列表或元組參數作爲 key-value 每個列表或元組將被當成一個 key-value 對
# 因此這些列表或者元組都只能包含兩個元素
vegtables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]
dict3 = dict(vegtables)
print(dict3)

vegtables1 = [['celery', 1.58], ['brocoli', 1.29], ['lettuce', 2.19]]
dict4 = dict(vegtables1)
print(dict4)
# 空字典
dict5 = dict()
# 通過關鍵字的形式創建字典
dict(spinach=1.39, cabb=2.59) #{ ’ spinach ’: 1. 39,’eabbage ' : 2 . 5 9}

(2)字典的基本用法

scores = {'語文':89}
#通過 key訪問value
print(scores['語文'])
print(scores.get('語文'))

#對不存在的 key 賦值,就是增加 key value
scores['數學'] = 90
print(scores) #{'語文': 89, '數學': 90}

#刪除 key value
del  scores['語文']
del  scores['數學']

#修改dict
scores['語文'] = 50
print(scores)

#判斷dict是否包含指定的key
print('語文' in scores)
print('語文' not  in scores)

字典的 key 是它的關鍵。換個角度來看,字典的 key就相當於它的索 引,只不過這些索引不一定是整數類型,字典的 key 可以是任意不可變類型。字典相當於索引是任意不可變類型的列表:而列表則相當於 key 只能是整數的字 典。因此 ,如果程序中要使用的字典的 key 是整數類型, 則可考慮能否換成列表。

(3) 字典的常用方法

dir(dict)

cars = {'bmw':9,'bens':8.3}

#清空字典

cars.clear()

cars.get('bmw')

#更新字典

cars.update()

#用於獲取字典的kv鍵值對

cars.items()

#獲取字典的所有key

cars.keys()

#獲取字典的所有的value

cars.values()

#彈出並刪除指定的kv

cars.pop('bmw')

#隨機彈出一個kv鍵值對

cars.popitem()

# setdefault()設置默認的kv,並返回v

# fromKeys() 函數使用給定的多個key創建字典,這些key對應的value默認都是None,也可以額外傳入一個參數作爲默認的value,該方法一般不會使用字典對象調用。通常會使用dict類直接調用。

#在 字符串模版中使用key

temp = ' 書名是:% {name}s, 價格是: %{price}010.2f, 出版社是:%{publish}s'

book  = {’ name’:瘋狂Python講義, ’price’: 88. 9,  ’ publish ’: '電子社’}

#使用字典爲字符串模版中的key傳入值

print(temp % book)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章