python學習筆記(一)數據類型

無論學什麼編程語言,學會看官方文檔總是很有幫助的,當然看官方文檔的話,需要具備一定的英文水平。Python是有官方網站的,和其他編程語言一樣,在學習之前,需要進行一定的準備,構建環境,設置環境變量,選擇編輯器。

構建環境、設置環境變量的相關教程很多了,過程也不難,就不贅述記錄了。

編譯環境的話,在剛開始入門Python時,IDLE還是比較高好用的。如果代碼比較多的話,可以選擇其他的編譯器,這裏我比較常用Spyder。當然,如果調式一個比較大的項目,最好使用PyCharm,但是一般對於初學者來說,Spyder就已經夠用了。

萬丈高樓平地起,先從最基本的一些語法開始。我的Python學習有兩條主線:

一條是分析並且調試現有的代碼;

我以編寫一個個小遊戲入手,理解一些簡單的Python編程語言。目前我已經調試了一些Python遊戲編程的代碼,接觸了pygame模塊,當然pygame還能寫出更好玩的遊戲,這裏只是簡單實現了一些常用的功能。針對這幾天調試的一個個小遊戲,整理這裏面用到的python語法。

一條是總結項目中涉及到的編程語言語法和一些常用的編程思想。

當然其實在調試這些小程序的時候,就已經寫就這些了,只是不全面,近期想較爲全面的整理一下python的基本語法,作爲前面學習的複習。

話不煩絮,從基本的語法開始,這裏先簡單瞭解Python常用的數據結構。

目錄

(一)數字類型

 

(二)字符串類型

1)將字符串理解爲字符序列

2)特殊字符和轉義序列

3)數字格式(八進制、十六進制)和Unicode編碼的轉義序列

4)字符串方法

5)格式化字符串

1.用%格式化字符串

2.format方法

6)總結:

(三)列表類型

1)列表類似於數組

2)列表的索引機制

3)修改列表

4)對列表排序

5)其他常用列表操作

(四)元組類型

(五)集合類型

(六)字典類型

1)何爲字典

2)字典的其他操作

3)字典視圖對象


Python的數據類型大致可以分爲以下六類:

  1.  Number(數字): int(整型), bool(布爾), float(浮點數), complex(複數)
  2.  String(字符串)
  3.  List(列表)
  4.  Tuple(元組)
  5.  Sets(集合)
  6.  Dictionary(字典)
  7.  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方法)返回的視圖還與集合有點類似,可以進行並集、差集和交集操作。

 

 

 

 

 

 

 

 

 

 

參考:

  1. 思維導圖來源:https://blog.csdn.net/mdxiaohu/article/details/81811459
  2. 《THE Quick Python Book》(THIRD EDITIION) Naomi Ceder
  3. 菜鳥教程
  4. B站:小甲魚課程

 

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