Python3 變量和集合
阿新 • • 發佈:2017-05-31
不存在 取值 int extend 字典 some tro pda append
# print是內置的打印函數
print("I‘m Python. Nice to meet you!")
# 在給變量賦值前不用提前聲明
# 傳統的變量命名是小寫,用下劃線分隔單詞
some_var = 5
some_var # => 5
# 訪問未賦值的變量會拋出異常
some_unknown_var # 拋出NameError
# 用列表(list)儲存序列(list是一個有序的集合,可以隨時添加刪除其中的元素)
li = []
# 創建列表時也可以同時賦給元素
other_li = [4, 5, 6]
# list列表裏面的數據類型可以不同
li = [1,23,"add",True]
# 用append在列表尾部追加元素
li.append(1) # li現在是[1]
li.append(2) # li現在是[1, 2]
li.append(4) # li現在是[1, 2, 4]
li.append(3) # li現在是[1, 2, 4, 3]
# 用pop從列表尾部刪除
li.pop() # => 3 且li現在是[1, 2, 4]
# 要刪除指定位置用pop(i),其中i是索引位置
li.pop(0) # => 1 且li現在是[2,4]
# 把3再放回去
li.append(3) # li變回[1, 2, 4, 3]
# 列表存取跟數組一樣
li[0] # => 1
# 取出最後一個元素-1。(倒數第二-2,以此類推)
li[-1] # => 3
# 越界存取會造成IndexError
li[4] # 拋出IndexError
# 列表有切割語法
li[1:3] # => [2, 4]
# 取尾
li[2:] # => [4, 3]
# 取頭
li[:3] # => [1, 2, 4]
# 隔一個取一個
li[::2] # =>[1, 4]
# 倒排列表
li[::-1] # => [3, 4, 2, 1]
# 可以用三個參數的任何組合來構建切割
li[始:終:步伐](從0開始,包含始,不含終,且構建出新列表,原始列表不變 )
# 用del刪除任何一個元素 del+空格+列表[位置]
del li[2] # li is now [1, 2, 3]
# 列表可以相加。註意:相加後成為新列表,li和other_li的值都不變
li + other_li # => [1, 2, 3, 4, 5, 6]
# 用extend拼接列表
li.extend(other_li) # li現在是[1, 2, 3, 4, 5, 6]
# 用in測試列表是否包含值
1 in li # => True
# 用len取列表長度(即列表內元素的個數)
len(li) # => 6
# 元組tuple是不可改變的序列
tup = (1, 2, 3)
tup[0] # => 1
tup[0] = 3 # 拋出TypeError
# 只有一個元素的tuple要用,來消除歧義
t = (1,)
# 列表允許的操作元組大都可以
len(tup) # => 3
tup + (4, 5, 6) # => (1, 2, 3, 4, 5, 6)
tup[:2] # => (1, 2)
2 in tup # => True
# 可以把元組和列表解包,賦值給變量
a, b, c = (1, 2, 3) # 現在a是1,b是2,c是3
# 元組周圍的括號是可以省略的
d, e, f = 4, 5, 6
# 交換兩個變量的值就這麽簡單
e, d = d, e # 現在d是5,e是4
# 用字典表達映射關系
empty_dict = {}
# 初始化的字典
filled_dict = {"one": 1, "two": 2, "three": 3}
# 用[]取值
filled_dict["one"] # => 1
# 用keys獲得所有的鍵。因為keys返回一個可叠代對象,所以在這裏把結果包在list裏。
# 註意:字典鍵的順序是不定的。
list(filled_dict.keys()) # => ["three", "two", "one"]
# 用values獲得所有的值。跟keys一樣,要用list包起來,順序也可能不同。
list(filled_dict.values()) # => [3, 2, 1]
# 用in測試一個字典是否包含一個鍵
"one" in filled_dict # => True
1 in filled_dict # => False
# 訪問不存在的鍵會導致KeyError
filled_dict["four"] # KeyError
# 用get來避免KeyError
filled_dict.get("one") # => 1
filled_dict.get("four") # => None
# 當鍵不存在的時候get方法可以返回默認值
filled_dict.get("one", 4) # => 1
filled_dict.get("four", 4) # => 4
# setdefault方法只有當鍵不存在的時候插入新值
filled_dict.setdefault("five", 5) # filled_dict["five"]設為5
filled_dict.setdefault("five", 6) # filled_dict["five"]還是5
# 字典賦值(將數據放入字典的方法)
filled_dict.update({"four":4}) #=> {"one": 1, "two": 2, "three": 3, "four": 4}
filled_dict["four"] = 4 # 另一種賦值方法
# 用del刪除
del filled_dict["one"] # 從filled_dict中把one刪除
# 用set表達集合(set和dict類似,也是一組key的集合,但不存儲value。由於key不能重復,所以,在set中,沒有重復的key。)
empty_set = set()
# 初始化一個集合,語法跟字典相似。
some_set = {1, 1, 2, 2, 3, 4} # some_set現在是{1, 2, 3, 4}
# 可以把集合賦值於變量
filled_set = some_set
# 為set集合添加元素 .add(key)
filled_set.add(5) # filled_set現在是{1, 2, 3, 4, 5}
# 為set集合刪除元素 .remove(key)
filled_set.remove(4) # filled_set現在是{1,2,3,5}
# & 取交集
other_set = {3, 4, 5, 6}
filled_set & other_set # => {3, 4, 5}
# | 取並集
filled_set | other_set # => {1, 2, 3, 4, 5, 6}
# - 取補集
{1, 2, 3, 4} - {2, 3, 5} # => {1, 4}
# in 測試集合是否包含元素
2 in filled_set # => True
10 in filled_set # => False
Python3 變量和集合