03.從零開始學Python~列表,元組,字典,集合

03.從零開始學Python~列表,元組,字典,集合

本文是上一篇文章的後續,詳情點擊該鏈接

列表

       用於存儲任意數目、任意類型的數據集合。

       列表是內置可變序列,是包含多個元素的有序連續的內存空間。

話不多說,擼代碼~

創建序列
#創建序列
arr = [1,'小明',9.6,'A',[2,3,6,7,5]]
print(arr)

在這裏插入圖片描述

range()創建整數列表

       range()可以幫助我們非常方便的創建整數列表。語法格式爲:

       range([start,] end [,step])

a = list(range(10))
b = list(range(3,10))
c = list(range(1,20,2))
print("a = " , a)
print("b = " , b)
print("c = " , c)

在這裏插入圖片描述

       由此可見,其語法格式是包頭不包尾

推導式生成列表

# x 從 0 開始 循環5次 創建 5 個 * 2 的元素
a = [x * 2 for x in range(0,5)]
print(a)

在這裏插入圖片描述

還可以通過if過濾
a = [x * 2 for x in range(100) if x % 6 == 0]
print(a)

在這裏插入圖片描述

乘法擴展

a = [1,2,3]
b = a * 2
print(b)

在這裏插入圖片描述

Del刪除
a = [1,2,3,4,5,6,7,8,9]
del a[3]
print(a)

在這裏插入圖片描述

列表的方法

方法 描述
list.append(x) 將元素 x 增加到列表 list 尾部
list.extend(Lt) 將列表 Lt 所有元素加到列表 list 尾部
list.insert(index,x) 在列表 list 指定位置 index 處插入元素 x
list.remove(x) 在列表 list 中刪除首次出現的指定元素 x
list.pop([index]) 刪除並返回列表list 指定位置 index 處的元素,默認是最後一個元素
list.clear() 刪除列表所有元素,但並不是刪除這個列表
list.index(x) 返回第一個 x 的索引位置,若不存在 x 元素拋出異常
list.count(x) 返回指定元素 x 在列表 list 中出現的次數
len(list) 返回列表中包含元素的個數
list.reverse() 所有元素原地翻轉
list.sort() 所有元素原地排序
list.copy() 返回列表對象的淺拷貝

還有那個 slice 切片操作,和字符串差不多,這裏就不描述了,後面用到時候再說...

列表排序

修改原列表,不建新列表的排序
import random
a = [1,3,6,7,8,2,5,9]
#升序
a.sort()
print(a)
#降序
a.sort(reverse=True)
print(a)
#打亂
random.shuffle(a)
print(a)

在這裏插入圖片描述

建新列表的排序

通過內置函數 sorted()進行排序,返回新列表,不對原列表做修改。

#升序
a = [1,3,6,7,8,2,5,9]
b = sorted(a)
print(b)
#降序
b = reversed(a) #reversed返回的是迭代器對象
print(list(b))

在這裏插入圖片描述

        至於max,min,sum這三個方法都有相應的返回值,顧名思義,就不細寫了。

        二維列表和Java的二維數組差不多。

元組tuple

        列表屬於可變序列,元組屬於不可變序列。所以元組沒有增,刪,改相關的方法。但是元組可以轉化成列表然後實現增刪改。

在這裏插入圖片描述在這裏插入圖片描述

列表和元組可以互相轉換

#元組轉化列表
tup = (1,2,3)
lis = list(tup)
#列表轉化爲元組
a = tuple(lis)

        其實我個人覺得,暫時可以理解爲,元組就像是列表的常量

Zip,將多個列表合併成一個元組

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
d = zip(a,b,c)
print(tuple(d))

在這裏插入圖片描述

字典

        字典是“鍵值對”的無序可發序列,字典中的每個元素都是一個“鍵值對”,包含:“鍵 對象”和“值對象”。可以通過“鍵對象”實現快速獲取、刪除、更新對應的“值對象”。

        列表中我們通過“下標數字”找到對應的對象。字典中通過“鍵對象”找到對應的“值 對象”。“鍵”是任意的不可變數據,比如:整數、浮點數、字符串、元組。但是:列表、 字典、集合這些可變對象,不能作爲“鍵”。並且“鍵”不可重複。

        和C++,Java裏面的Map差不多

字典的創建

#方法一:
dic = {1:"小明",2:"小張",3:"小剛"}
print(dic)
#方法二:
a = [1,2,3]
b = ["小明","小張","小剛"]
dic2 = dict(zip(a,b))
print(dic2)
#方法三
ar = dict.fromkeys([1,2,3])
print(ar)

在這裏插入圖片描述

字典元素的訪問

dic = {1:"小明",2:"小張",3:"小剛"}
#通過  [鍵]  獲得“值”。若鍵不存在,則拋出異常。
print(dic[2])
# 通過 get()方法獲得“值”。推薦使用。
#優點是:指定鍵不存在,返回None;
# 也可以設定指定鍵不存在時默認返回的對象。推薦使用 get()獲取“值對象”。
print(dic.get(2))

在這裏插入圖片描述

dic = {1:"小明",2:"小張",3:"小剛"}
#列出所有的鍵值對
print(dic.items())
#列出所有的鍵,列出所有的值
print(dic.keys())
print(dic.values())
# len() 鍵值對的個數
print(len(dic))
#判斷鍵是否存在
print(2 in dic)

在這裏插入圖片描述

字典元素添加、修改、刪除

dic = {1:"小明",2:"小張",3:"小剛"}
#新增鍵值對
dic[4] = '小海'
print(dic)
#如果鍵不存在則新增,如果存在則覆蓋
dic[1] = '小趙'
print(dic)
#=============================================================
#使用 update()將新字典中所有鍵值對全部添加到舊字典對象上。
# 如果key 有重複,則直接覆蓋。
dic2 = {4:"小海",5:"小凱",1:"小劉"}
dic.update(dic2)
print(dic)
#=============================================================
#字典中元素的刪除,可以使用 del()方法
del(dic[2])
print(dic)
# 或者 clear()刪除所有鍵值對;pop()刪除指定鍵值對,並返回對應的 “值對象”
data = dic.pop(1)
print(data)
#隨機刪除返回鍵值對
dic.popitem()
print(dic)

在這裏插入圖片描述

序列解包

        序列解包可以用於元組、列表、字典。序列解包可以讓我們方便的對多個變量賦值。

(a,b,c) = [1,2,3]
print(a)
print(b)
print(c)

在這裏插入圖片描述

       序列解包用於字典時,默認是對“鍵”進行操作; 如果需要對鍵值對操作,則需要使用 items();如果需要對“值”進行操作,則需要使用 values()

#默認是鍵
dic = {1:"小明",2:"小剛",3:"小劉"}
a,b,c = dic
print(a)
print(b)
print(c)

在這裏插入圖片描述

dic = {1:"小明",2:"小剛",3:"小劉"}
#對鍵值對進行操作
a,b,c = dic.items();
print(a)
#對值進行操作
d,e,f = dic.values()
print(d)

在這裏插入圖片描述

集合

       集合是無序可變,元素不能重複,實際上集合底層是字典實現。集合中的所有元素都是字典中的鍵對象,因此是唯一的

       方法基本上差的不多

Python 對集也提供了並集、交集、差集等運算,和數學中的概念一樣

>>> a = {1,3,'alvin'} 
>>>> b = {'he','it','alvin'} 
>>>> a|b    #幵集 {1, 3, 'alvin', 'he', 'it'} 
>>>> a&b     #交集 {'alvin'} 
>>>> a-b     #鞏集 {1, 3} 
>>>> a.union(b)    #幵集 {1, 3, 'alvin', 'he', 'it'} 
>>>> a.intersection(b)  #交集 {'alvin'} 
>>>> a.difference(b)   #鞏集 {1, 3}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章