1. 程式人生 > >py 元組tuple, 列表list 與詞典dict

py 元組tuple, 列表list 與詞典dict

1.元組

元組, builtins.tuple. 小括號.
在初始化後, 內容不能被更新.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 輸出完整元組
print tuple[0] # 輸出元組的第一個元素
print tuple[1:3] # 輸出第二個至第三個的元素 
print tuple[2:] # 輸出從第三個開始至列表末尾的所有元素
print tinytuple * 2 # 輸出元組兩次
print tuple + tinytuple # 列印組合的元組

2.列表

builtins.list, 是一個類.
列表, list, 中括號.
是 Python 中使用最頻繁的資料型別。
可以盛放若干個不同型別的元素.

list[:] list的所有元素
list[-i] list的倒數第i個元素, -1就是正數的最後一個.
list.append(list2) 將list2作為一個元素追加進去
list.extend(list2) 將list2的每個元素都作為一個元素挨個追加進去

  • list#pop(self, index=None)
    remove and return item at index (default last).
#!/usr/bin/python
# -*- coding: UTF-8 -*-
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 輸出完整列表
print list[0] # 輸出列表的第一個元素
print list[1:3] # 輸出第二個至第三個的元素 
print list[2:] # 輸出從第三個開始至列表末尾的所有元素
print tinylist * 2 # 輸出列表兩次
print list + tinylist # 列印組合的列表

2.0 list遍歷

如果元素型別是tuple或list, 可以直接 通過 for(x,y)這樣的形式直接取到基本元素的子元素.

x=[(1,2,3),(2,3,4),(3,4,5)]
for t1,t2,t3 in x:
    print(t1,t2,t3)
for (t1,t2,t3) in x:
    print(t1,t2,t3)

2.1 range

用於生成一個list.
range(a)生成[0,a)的元素
range(a,b)生成[a,b)的元素
range(a,b,c) 生成[a,b)的元素, 間隔是c
在py3.5中, 生成的型別是range.

2.2 二維陣列

def create2dArr(rowNum,columnNum):
        arr = [[0]*columnNum for i in range(rowNum)]
        return arr

3.字典

字典, dictionary, 大括號.
你會發現, 它跟json 很像.
key in dict 判斷詞典中是否有這個key.

dict[key], key不存在會報錯.
dict.get(key) key不存在返回None.
dict.get(key,defaultValue) key不存在返回defaultValue.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 輸出鍵為'one' 的值
print dict[2] # 輸出鍵為 2 的值
print tinydict # 輸出完整的字典
print tinydict.keys() # 輸出所有鍵
print tinydict.values() # 輸出所有值

3.1 dict的遍歷

固有順序遍歷:

for k,v in my_dict.items():
    print(k,v)

按照value排序得到list:

dic = {'a':1 , 'b':5 , 'c': 3,'d':2}
x=sorted(dic.items(),key=lambda x:x[1],reverse=True)
print(x)
"""
[('b', 5), ('c', 3), ('d', 2), ('a', 1)]
"""

3.2 dict的隨機抽取

list(dict.keys())list(dict.values()) 將key或value的所有取值變成了一個列表.
然後通過 np.random.choice() 隨機抽取.

4. 篩選與對映

想要對已有集合進行篩選與對映, 得到新集合. 除了新申請一個list, 用for迴圈遍歷處理外, 還可以
一邊用謂詞篩選, 一邊用函式加工,一句話搞定.

text_word_arr = ['',',','ab','the']
text_valid_word_arr = list( '['+word+']' for word in text_word_arr if len(word) > 1)
print(text_valid_word_arr)
"""
['[ab]', '[the]']
"""