無論學什麼編程語言,學會看官方文檔總是很有幫助的,當然看官方文檔的話,需要具備一定的英文水平。Python是有官方網站的,和其他編程語言一樣,在學習之前,需要進行一定的準備,構建環境,設置環境變量,選擇編輯器。
構建環境、設置環境變量的相關教程很多了,過程也不難,就不贅述記錄了。
編譯環境的話,在剛開始入門Python時,IDLE還是比較高好用的。如果代碼比較多的話,可以選擇其他的編譯器,這裏我比較常用Spyder。當然,如果調式一個比較大的項目,最好使用PyCharm,但是一般對於初學者來說,Spyder就已經夠用了。
萬丈高樓平地起,先從最基本的一些語法開始。我的Python學習有兩條主線:
一條是分析並且調試現有的代碼;
我以編寫一個個小遊戲入手,理解一些簡單的Python編程語言。目前我已經調試了一些Python遊戲編程的代碼,接觸了pygame模塊,當然pygame還能寫出更好玩的遊戲,這裏只是簡單實現了一些常用的功能。針對這幾天調試的一個個小遊戲,整理這裏面用到的python語法。
一條是總結項目中涉及到的編程語言語法和一些常用的編程思想。
當然其實在調試這些小程序的時候,就已經寫就這些了,只是不全面,近期想較爲全面的整理一下python的基本語法,作爲前面學習的複習。
話不煩絮,從基本的語法開始,這裏先簡單瞭解Python常用的數據結構。
目錄
3)數字格式(八進制、十六進制)和Unicode編碼的轉義序列
Python的數據類型大致可以分爲以下六類:
- Number(數字): int(整型), bool(布爾), float(浮點數), complex(複數)
- String(字符串)
- List(列表)
- Tuple(元組)
- Sets(集合)
- Dictionary(字典)
- None(空值)
(一)數字類型
通過一張思維導圖瞭解一下數字類型:
關於數據類型的轉換:
(二)字符串類型
主要內容
- 將字符串理解爲字符序列
- 使用基本的字符串操作
- 插入特殊字符和轉義序列
- 將對象轉換爲字符串
- 對字符串進行格式化
- 使用字節類型
1)將字符串理解爲字符序列
如果要提取字符或字符串,可以將字符串看作是一系列字符,也就是說可以使用索引和切片語法進行操作
但是字符串並不是字符列表。字符串和列表之間最明顯的區別就是,字符串不可以修改。
>>> x = ["Hello"]
>>> x[0]
'Hello'
>>> x = "Hello"
>>> x[0]
'H'
>>> x[-1]
'o'
>>> x[1 : ]
'ello'
#len()函數確定字符串中的字符數類似於獲取列表中的元素一樣
>>> len("Hello")
5
#字符串的基本操作
>>> x = 'Hello ' + 'World'
>>> x
'Hello World'
>>> 8 * "x"
'xxxxxxxx'
2)特殊字符和轉義序列
以反斜槓開頭,用於表示其他字符的字符序列,被稱爲轉義序列(escape sequence)。轉義序列通常用來表示特殊字符,也就是這種字符沒有標準的用單字符表示的可打印格式。
常見轉義序列:
Escape Sequence | Meaning | Notes |
---|---|---|
\newline |
Backslash and newline ignored | |
\\ |
Backslash (\ ) |
|
\' |
Single quote (' ) |
|
\" |
Double quote (" ) |
|
\a |
ASCII Bell (BEL) | |
\b |
ASCII Backspace (BS) | |
\f |
ASCII Formfeed (FF) | |
\n |
ASCII Linefeed (LF) | |
\r |
ASCII Carriage Return (CR) | |
\t |
ASCII Horizontal Tab (TAB) | |
\v |
ASCII Vertical Tab (VT) | |
\ooo |
Character with octal value ooo | (1,3) |
\xhh |
Character with hex value hh | (2,3) |
3)數字格式(八進制、十六進制)和Unicode編碼的轉義序列
在字符串中,可以用與ASCII字符對應的八進制或十六進制轉義序列來包含任何ASCII字符。八進制轉義序列是反斜槓後跟3位八進制數,這個八進制數對應的ASCII字符將會被八進制轉義序列替代。十六進制轉義序列不是用“ \ ”作爲前綴,而是用“\x”,後跟任意位數的十六進制數。如果遇到不是十六進制數字的字符,就會視作轉義序列結束。
例如,在ASCII字符表中,字符“m”轉換爲十進制值爲109,轉換成八進制值就是1551,轉換成十六進制值則爲6D。
>>> 'm'
'm'
>>> '\155'
'm'
>>> '\x6D'
'm'
#對於換行符“\n”,八進制爲012,十六進制爲0A
>>> '\n'
'\n'
>>> '\012'
'\n'
>>> '\x0A'
'\n'
Python3的字符串都是Unicode字符串,因此幾乎能夠包含所有語言的全部字符。
#特殊字符在字符串和print函數中不同的編譯方式
>>> 'a\n\tb'
'a\n\tb'
>>> print('a\n\tb')
a
b
#print函數通常還會在字符串末尾添加換行符
>>> print("abc\n")
abc
#將print函數的end參數設置爲“ ”,就可以讓print函數不再添加換行符
>>> print("abc\n", end="")
abc
4)字符串方法
Python字符串方法大都內置於標準Python字符串類中,因此所有的字符串對象都會自動擁有這些方法。
利用函數int和float,可以將字符串分別轉換爲整數或浮點數。如果字符串無法轉換爲指定類型的數值,那麼這個函數將會引發ValueError異常。
#split()方法返回字符串中的子字符串列表
>>> x = '1, 2, 3, 4, 5, 6'.split()
>>> x
['1,', '2,', '3,', '4,', '5,', '6']
#join()方法以字符串列表爲參數,將字符串連在一起形成一個新字符串
>>> " ".join(x)
'1, 2, 3, 4, 5, 6'
>>> x = '1, 2, 3, 4'.split()
>>> "::".join(x)
'1,::2,::3,::4'
>>> float('123.456')
123.456
>>> float('xxzz')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
float('xxzz')
ValueError: could not convert string to float: 'xxzz'
>>> int('3333')
3333
#將10000是爲八進制數
>>> int('10000', 8 )
4096
#將101是爲二進制數
>>> int('101', 2 )
5
>>> int('ff',16)
255
#以上三個方法可以附帶一個參數,這個參數包含了需要移除的字符。
>>> x = "www.python.org"
>>> x.strip("w")
'.python.org'
#字符串搜索
#find()方法返回字符串第一個實例的首字符在調用字符串對象中的
#位置,如果未找到子串則返回-1
>>> x = "Mississippi"
>>> x.find("ss")
2
>>> x.find("zz")
-1
#忽略字符串中位置3之前的所有字符。
>>> x.find("ss", 3)
5
忽略位置3之後的所有字符
>>> x.find("ss", 0, 3)
-1
rfind方法同樣也有一個或兩個可選參數,用法與find方法相同。
index和rindex方法分別與find和rfind功能完全相同,但是有一點不同:當index或rindex方法在字符串中找不到子字符串時,不會返回-1,而是會引發ValueError。
startswith和endswith方法可以一次搜索多個子字符串。如果參數是個字符串元組,那麼這兩個方法就會對元組中的所有字符串進行檢測,只要有一個字符串匹配就會返回True
#count()返回給定子字符串在給定字符串中不重疊出現的次數
>>> x = "Mississippi"
>>> x.count("s")
4
>>> x.startswith("Miss")
True
>>> x.startswith("Misp")
False
>>> x.endswith("pi")
True
>>> x.endswith("p")
False
字符串是不可變的,但字符串對象有幾個方法可以對字符串操作並返回新字符串,新字符串是原字符串修改後的版本。
>>> x.replace("ss", "+++")
'Mi+++i+++ippi'
利用列表修改字符串:
>>> text = "Hello, World"
>>> wordList = list(text)
>>> wordList[6: ] = [ ]
>>> wordList
['H', 'e', 'l', 'l', 'o', ',']
>>> text = "".join(wordList)
>>> print(text)
Hello,
常用的字符串操作:
字符串操作 | 說明 |
---|---|
+ | 把兩個字符串拼接在一起 |
* | 複製字符串 |
upper | 將字符串轉換爲大寫 |
lower | 將字符串轉換爲小寫 |
title | 將字符串中每個單詞的首字母變爲大寫 |
find、index | 在字符串中搜索子字符串 |
rfind、rindex | 從字符串尾開始搜索子字符串 |
startswith、endswith | 檢查字符串的首部或尾部是否與給定子字符串匹配 |
replace | 將字符串中的目標子字符串替換爲新的子字符串 |
strip、rstrip、lstrip | 從字符串兩端移除空白符或其他字符 |
encode | 將Unicode字符串轉換爲bytes對象 |
注意:上述方法均不會修改原字符串,而是返回在字符串中的位置或新的字符串。
5)格式化字符串
1.用%格式化字符串
>>> print("我是 %s 今年 %d 歲" % ('生活', 10))
我是 生活 今年 10 歲
%c 格式化字符及其ASCII碼
%s 格式化字符串
%d 格式化整數
%o 格式化無符號八進制數
2.format方法
format方法是一種強大的字符串格式化腳本,稱得上是一種微型語言。
x = "1 2 3 4 5".split()
y = "a b c d e".split()
for i in range(0,5):
print("{1} = {0}".format(x[i], y[i]))
6)總結:
- Python字符串擁有強大的文本處理功能,包括搜索與替換、清除空格、改變大小寫等。
- 字符串是不可變對象,無法原地修改。
- 那些看似修改字符串的操作其實都是返回了修改後的副本。
- re(正則表達式)模塊擁有更爲強大的字符串處理能力。
最後引用一張思維導圖作爲拓展:
(三)列表類型
主要內容
- 操縱列表及其索引機制
- 修改列表
- 對列表排序
- 使用常用的列表操作
- 處理嵌套列表和深複製
1)列表類似於數組
#將包含3個元素的列表賦給x
x = [1, 2, 3]
注意,列表不必提前聲明,也不用提前就將大小固定下來,以上一行代碼就完成了列表的創建和賦值,列表的大小會根據需要自動增減。
Python提供了強類型的array模塊,支持C語言數據類型的數組。有關數組的用法,可以從官方文檔中找到。如果考慮數值計算,則應該考慮NumPy。
Python的列表可以包含不同類型的元素,列表元素可以是任意類型的Python對象。
#第一個元素是數字,第二個元素是字符串,第三個元素是另一個列表
x = [2, "two", [1, 2, 3]]
最基本的列表內置函數或許就是len()函數了,它返回列表元素的數量。注意,列表不會對內部嵌套的列表中的數據項進行計數。
>>> x = [2, "two", [1, 2, 3]]
>>> len(x)
3
2)列表的索引機制
Python從0開始計數,索引爲0將返回列表的第一個元素,索引爲2將返回第二個元素,依此類推。如果索引爲負數,表示從列表末尾開始計數的位置,其中-1是列表的最後位置,-2是倒數第二位,依此類推。
切片(slice):左閉右開,包含左邊的元素,不包含右邊的元素。
複製列表:如果兩個索引都省略了將會由原列表從頭到尾創建一個新列表,即列表的複製。如果需要修改列表,但又不想影響原列表,就需要創建列表的副本,這時就能用到列表複製技術了。
在Python裏面,列表的引用都是建立在原列表之上的:
>>> x
['first', 'secend', 'third', 'four']
#右邊數字在左邊數字的前面,則返回空列表
>>> x[2 : 0]
[]
#從0到第三個
>>> x[ : 3]
['first', 'secend', 'third']
#從第三個元素到最後一個。
>>> x[2 : ]
['third', 'four']
#從第一個到最後一個
>>> x[:]
['first', 'secend', 'third', 'four']
#複製列表,在需要對列表進行操作,但是又不想影響原列表時。
>>> y = x[:]
>>> y
['first', 'secend', 'third', 'four']
3)修改列表
除了提取列表元素,使用列表索引語法還可以修改列表。只要將索引放在賦值操作符左側即可:
>>> x = [1, 2, 3, 4]
>>> x[1] = 'two'
>>> x
[1, 'two', 3, 4]
切片語法也可以這樣使用:
>>> x = [1, 2, 3, 4]
>>> x[len(x) : ] = [5, 6, 7]
>>> x
[1, 2, 3, 4, 5, 6, 7]
>>> x[ : 0] = [-1, 0]
>>> x
[-1, 0, 1, 2, 3, 4, 5, 6, 7]
>>> x[1 : -1] = []
>>> x
[-1, 7]
向列表添加單個元素是常見操作,所以專門爲此提供了append()方法:
>>> x = [1, 2, 3]
>>> x.append('four')
>>> x
[1, 2, 3, 'four']
如果用append方法把列表添加到另一個列表中去,添加進去的列表會成爲主列表中的單個元素:
>>> x = [1, 2, 3, 4]
>>> y = [5, 6, 7]
>>> x.append(y)
>>> x
[1, 2, 3, 4, [5, 6, 7]]
可以用extend()方法將列表追加到另一個列表之後:
>>> x = [1, 2, 3, 4]
>>> y = [5, 6, 7]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6, 7]
insert()方法,可以在兩個現有的元素之間或列表之前插入新的元素。insert是列表的方法,帶有兩個參數。第一個參數是新元素被插入列表的索引位置,第二個參數是新元素本身。可以理解爲在列表的第n個元素之前插入新元素:
>>> x = [1, 2, 3]
>>> x.insert(2, "Hello")
>>> print(x)
[1, 2, 'Hello', 3]
>>> x.insert(0, "start")
>>> x
['start', 1, 2, 'Hello', 3]
insert()甚至可以處理負數索引:
>>> x = [1, 2, 3]
>>> x.insert(-1, "Hello")
>>> x
[1, 2, 'Hello', 3]
刪除列表數據項或切片可以使用del語句:
>>> x = 'Hello Python I love you'.split()
>>> del x[4]
>>> x
['Hello', 'Python', 'I', 'love']
remove()方法會先在列表中查找給定值的第一個實例,然後將該值從列表中刪除。如果remove找不到要刪除的值,就會引發錯誤:
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> x.remove(3)
>>> x
[1, 2, 4, 5, 6, 7, 8]
4)對列表排序
列表sort()方法可以對列表進行排序。sort()方法時原地排序的,也就是說會修改原來的列表。
可以新建列表副本,對副本進行排序。
sort()用到默認鍵方法要求,列表中的所有類型都是可以進行比較的類型,也就是說,如果列表同時包含數字和字符串,那麼使用sort()方法將會引發異常:
>>> x
[7, 6, 5, 4, 2, 1]
>>> x.sort()
>>> x
[1, 2, 4, 5, 6, 7]
對列表的列表是可以排序的,排序方式爲,先升序比較的一個元素,再升序比較第二個元素:
>>> x = [[1,4] , [2 ,3] , [2 , 9],[4 , 8],[4 , 4]]
>>> x.sort ()
>>> x
[[1, 4], [2, 3], [2, 9], [4, 4], [4, 8]]
自定義排序:
word_list = ["Python", "is", "better", "than", "C"]
word_list.sort()
print(word_list)
>>>['C', 'Python', 'better', 'is', 'than']
自定義函數排序。按照字符數量升序排序:
def comper_num_of_chars(strings):
return len(strings)
word_list = ["Python", "is", "better", "than", "C"]
word_list.sort(key = comper_num_of_chars)
print(word_list)
函數也是Python對象,可以像其他任何Python對象一樣來傳遞。
內置sorted()函數,能夠從任何可迭代對象返回有序列表:
>>> x = [4,3,1,2]
>>> y = sorted(x)
>>> y
[1, 2, 3, 4]
當reverse=True時,可以實現逆向排序:
>>> z = sorted(x, reverse=True)
>>> z
[4, 3, 2, 1]
5)其他常用列表操作
用in操作符判斷列表成員:
>>> z
[4, 3, 2, 1]
>>> 3 in z
True
>>> 5 in z
False
>>> 7 not in z
True
使用+操作符拼接列表:
>>> m = z + [7, 8, 9]
>>> m
[4, 3, 2, 1, 7, 8, 9]
用*操作符初始化列表:
>>> z = [None] * 4
>>> z
[None, None, None, None]
>>> z = [3, 2] *4
>>> z
[3, 2, 3, 2, 3, 2, 3, 2]
用min和max方法求列表的最小值和最大值:
>>> min z
SyntaxError: invalid syntax
>>> min(z)
2
>>> max(x)
4
用index()方法搜索列表查找元素在列表的位置。
用count()方法對匹配項計數:
>>> x
[4, 3, 1, 2]
>>> x.index(3)
1
>>> x
[1, 2, 4, 5, 6, 7, 8]
>>> x.count(2)
1
常見列表操作彙總:
列表操作 | 說明 |
[] | 創建空列表 |
len | 返回列表長度 |
append | 在列表末尾添加一個元素 |
extend | 在列表末尾添加一個新的列表 |
insert | 在列表的指定位置插入一個新的元素 |
del | 刪除一個列表元素或切片 |
remove | 檢索列表並且移除給定的值 |
reverse | 原地將列表逆序 |
sort | 原地對列表進行排序 |
+ | 將兩個列表拼接在一起 |
* | 將列表複製多份 |
min | 返回列表中的最小元素 |
max | 返回列表中的最大元素 |
index | 返回某值在列表中的位置 |
count | 對某值在列表中出現的次數記數 |
sum | 對列表數據項計算合計值 |
in | 返回某數據項是否爲列表的元素 |
引用思維導圖:
(四)元組類型
元組就像是不可修改的列表,可被視爲受限的列表類型或記錄類型。後續會討論這種受限的數據類型的必要性。對於集合類型,當一個對象在集合中的成員身份(而不是位置)很重要時,那麼集合就很有用。
元組與列表類似,元組只能創建,不能修改。元組可以用作字典的鍵:
#新建元組
>>> x = ("a", "b", "c")
>>> x
('a', 'b', 'c')
#查找元組指定元素。
>>> x[2]
'c'
#元組中的最大值和最小值
>>> max(x)
'c'
>>> min(x)
'a'
#判斷元素是否在元組內,返回布爾值。
>>> 5 in x
False
>>> 5 not in x
True
#元組 + * 操作
>>> x + x
('a', 'b', 'c', 'a', 'b', 'c')
>>> 2 * x
('a', 'b', 'c', 'a', 'b', 'c')
#新建元組副本
>>> y = x[:]
>>> y
('a', 'b', 'c')
#單個元素的元組應加上逗號
>>> x = 3
>>> y = 4
#相當於二者加和
>>> (x + y)
7
#加 , 意味着圓括號是用來標識元組的
>>> (x + y, )
(7,)
#創建一個新元組
>>> ()
()
元組的打包和拆包
Python允許元組出現在賦值操作符的左側,這是元組中的變量會依次被賦予賦值操作符右側元組的元素值
>>> (one, two, three, four) = (1, 2, 3, 4)
>>> one
1
>>> two
2
在賦值時,即使沒有圓括號,Python也可以識別出元組,這時等號右側的值會被打包爲元組,然後拆包到左側的變量中去。
>>> five, six, seven, eight = 5, 6, 7, 8
>>> five
5
交換兩個變量:
>>> var1 = 1
>>> var2 = 2
>>> var1, var2 = var2, var1
>>> var1
2
>>> var2
1
擴展拆包的特性:允許帶*的元素接收任意數量的未匹配元素。
帶*的元素會把多餘的所有數據項接收爲列表。如果沒有多餘的元素,則帶星號的元素會收到空列表。
>>> x = (1, 2, 3, 4)
>>> a, b, *c = x
>>> a, b, c
(1, 2, [3, 4])
>>> a, b, c, d, *e = x
>>> a, b, c, d, e
(1, 2, 3, 4, [])
#列表和元組的相互轉換:
>>> x = (1, 2, 3, 4)
>>> list(x)
[1, 2, 3, 4]
>>> tuple(x)
SyntaxError: invalid character in identifier
>>>
>>> tuple(x)
(1, 2, 3, 4)
引用思維導圖:
(五)集合類型
集合(set)是無序集。主要用於是否屬於集合、是否唯一。集合中的項必須是不可變的、可散列的。
整數、浮點數、字符串、和元組可以作爲集合的成員。
列表、字典和集合本身不可以作爲集合的成員。
>>> y = [1,2,3,4,5,6,7]
創建集合
>>> x = set(y)
>>> x
{1, 2, 3, 4, 5, 6, 7}
爲集合添加元素
>>> x.add(8)
>>> x
{1, 2, 3, 4, 5, 6, 7, 8}
移除集合中的元素
>>> x.remove(7)
>>> x
{1, 2, 3, 4, 5, 6, 8}
判斷1 是否屬於集合x
>>> 1 in x
True
>>> 0 in x
False
>>> z = {5,7,8,9}
並集
>>> x | z
{1, 2, 3, 4, 5, 6, 7, 8, 9}
交集
>>> x & z
{8, 5}
對稱差:屬於一個但是不同時屬於兩個集合的元素。
>>> x ^ z
{1, 2, 3, 4, 6, 7, 9}
不可變集合
因爲集合是不可變的、可散列的,所以不能用作其他集合的成員。爲了讓集合本身也能夠成爲集合的成員,採用frozenset
與集合類似,但是創建之後就不能更改了。
新建集合
>>> x = set([1,2,3,1,3,5])
frozenset集合類型:
>>> z = frozenset(x)
>>> z
frozenset({1, 2, 3, 5})
>>> z .add(9)
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
z .add(9)
AttributeError: 'frozenset' object has no attribute 'add'
>>> x . add(9)
>>> x
{1, 2, 3, 5, 9}
>>> x.add(z)
>>> x
{1, 2, 3, 5, 9, frozenset({1, 2, 3, 5})}
引用思維導圖:
(六)字典類型
字典,這是Python對關聯數組(associative array)或映射(map)的叫法。字典通過使用散列表(hash table)實現。
主要內容:
- 定義字典
- 利用字典操作
- 確定哪些對象可用作字典鍵
- 創建稀疏矩陣
- 將字典用作緩存
- 相信字典的效率
1)何爲字典
不妨將字典與列表進行比較,以便能理解其用法。
- 列表中的值可以通過整數索引進行訪問,索引表示了給定值在列表中的位置。
- 字典中的“值”通過“鍵”進行訪問,鍵可以是整數、字符串或其他Python對象,同樣表示了給定值在字典中的位置。換句話說,列表和字典都支持用索引來訪問任意值,但是字典“索引”可用的數據類型比列表的索引要多得多。而且字典提供的索引訪問機制與列表的完全不同。
- 列表和字典都可以存放任何類型的對象。
- 列表中存儲的值隱含了按照在列表中的位置排序,因爲這些值的索引是連續的整數。這種順序可能會被忽略,但需要時就可以用到。存儲在字典中的值相互之間沒有隱含的順序關係,因爲字典的鍵不只是數字。注意,如果用字典的時候同時還需要考慮條目的順序(指加入字典的順序),那麼可以使用有序字典。有序字典是字典類的子類,可從collections模塊中導入。還可以用其他數據結構(通常是列表)來定義字典條目的順序,顯式的將順序保存起來,但這不會改變普通字典沒有隱式(內置)排序的事實。
儘管存在差異,但字典和列表的用法往往比較類似。空字典的創建就很像空列表,但是用花括號代替了方括號:
>>> x = []
>>> y = {}
列表創建完畢後,就可以像使用列表一樣在裏面存儲數據值:
>>> y[0] = 'Hello'
>>> y[1] = 'Goodbye'
如果對列表做同樣的操作,就會引發錯誤。因爲在Python中,對列表中不存在的位置賦值時非法的。列表的索引必須是整數,而字典的鍵則沒有什麼限制,可以是數字、字符串或其他很多種Python對象。
2)字典的其他操作
與keys方法類似,items方法通常與for循環結合使用,用於遍歷字典中的內容:
# 創建字典
>>> english_to_french = {'red' : 'rouge', 'blue' : 'bleu', 'green' : 'vert'}
# 返回字典的條目數量
>>> len(english_to_french)
3
#返回字典中的所有鍵
>>> list(english_to_french.keys())
['red', 'blue', 'green']
#返回儲存在字典中的所有值
>>> list(english_to_french.values())
['rouge', 'bleu', 'vert']
# 將所有鍵及其關聯值以元組序列的形式返回
>>> list(english_to_french.items())
[('red', 'rouge'), ('blue', 'bleu'), ('green', 'vert')]
#刪除
>>> del english_to_french['green']
>>> list(english_to_french.items())
[('red', 'rouge'), ('blue', 'bleu')]
#檢測字典中是否存在該鍵
>>> 'red' in english_to_french
True
#檢測是否存在該鍵,存在則返回鍵值,不存在則返回第二個參數
>>> english_to_french.get('blue' , 'No founded')
'bleu'
>>> english_to_french.get('play' , 'No founded')
'No founded'
3)字典視圖對象
keys、values、和items方法返回結果都不是列表,而是視圖(view)。視圖的表現與序列類似,但在字典內容變化時會動態更新。這就是上例中要用list函數將結果轉換爲列表。除此之外,它們的表現與序列相似,允許用for循環迭代,可用in來檢查成員的資格,等等。由keys方法(有時候是items方法)返回的視圖還與集合有點類似,可以進行並集、差集和交集操作。
參考:
- 思維導圖來源:https://blog.csdn.net/mdxiaohu/article/details/81811459
- 《THE Quick Python Book》(THIRD EDITIION) Naomi Ceder
- 菜鳥教程
- B站:小甲魚課程