Python基礎(chǔ)
數(shù)據(jù)類型
tuple
tuple是一個(gè)固定長度避乏,不可修改的對象
tup = (1, 2, 3)
tup
(1, 2, 3)
tuple可以tuple中的一個(gè)元素
nested_tup = (4, 5, 6), (7, 8)
nested_tup
((4, 5, 6), (7, 8))
tuple可以將一個(gè)Sequence轉(zhuǎn)換為tuple
tuple([4, 0, 2])
(4, 0, 2)
tuple('string')
('s', 't', 'r', 'i', 'n', 'g')
tuple內(nèi)的元素不可以修改,但是可以使用方法append添加元素
tup = tuple(['foo', [1, 2], True])
tup[1].append(3)
tup
('foo', [1, 2, 3], True)
tuple拆包
如果使用tuple-like表達(dá)的一系列元素來分配變量筒饰,該變量會(huì)被拆解開
tup = 4, 5, (6, 7)
a, b, (c, d) = tup
d
7
在python中捂贿,可以使用語法*rest來表示剩余的所有元素
tup = 4, 5, (6, 7)
a, *rest = tup
a
Out[41]: 4
rest
Out[42]: [5, (6, 7)]
tuple方法
count可以用來計(jì)算tuple中某個(gè)元素的數(shù)量
a = (1, 2, 2, 2, 3, 4, 2)
a.count(2)
Out[45]: 4
List
與tuple相反顿痪,list的長度是可變的
tup = (1, 2, 3)
a = list(tup)
a
Out[58]: [1, 2, 3]
a[1] = 0
a
Out[60]: [1, 0, 3]
list方法
sort方法可以用不同的方式對list進(jìn)行排序
a = [2,3,1,4,5]
a.sort()
a
Out[66]: [1, 2, 3, 4, 5]
a = ['康德','蘇格拉底','黑格爾','亞里士多德']
a.sort(key = len)
a
Out[69]: ['康德', '黑格爾', '蘇格拉底', '亞里士多德']
list分割
list[x:y] 可以從第x個(gè)元素開始依溯,到第y個(gè)元素之前
seq = [1, 2, 3, 4, 5, 6, 7]
seq[2:4]
Out[74]: [3, 4]
負(fù)數(shù)可以從末尾開始計(jì)數(shù)
seq[-4:-2]
Out[77]: [4, 5]
使用list[::x]可以對list進(jìn)行倒序或者隔元素提取等操作
seq[::2]
Out[78]: [1, 3, 5, 7]
seq[::-1]
Out[79]: [7, 6, 5, 4, 3, 2, 1]
dict
dict是python中最重要以及最常用的數(shù)據(jù)類型之一胚泌,dict也被常叫為hash map(哈希表)或associative array
dict的概念為數(shù)據(jù)中存在一一對應(yīng)的key和value
d1 = {'a':1, 'b':[2, 3], 'c':(4, 5, 6)}
d1['c']
Out[84]: (4, 5, 6)
如果直接assign一個(gè)dict中不存在的key,則會(huì)添加一個(gè)元素
d1[4] = 4
d1
Out[86]: {'a': 1, 'b': [2, 3], 'c': (4, 5, 6), 4: 4}
dict中的元素同樣可以修改
d1[4] = 5
d1
Out[88]: {'a': 1, 'b': [2, 3], 'c': (4, 5, 6), 4: 5}
dict方法
方法del()和pop()可以刪除一個(gè)元素逼肯,但是pop則會(huì)返回該key的value
d1
Out[88]: {'a': 1, 'b': [2, 3], 'c': (4, 5, 6), 4: 5}
result = d1.pop(4)
result
Out[90]: 5
d1
Out[91]: {'a': 1, 'b': [2, 3], 'c': (4, 5, 6)}
del d1['b']
d1
Out[93]: {'a': 1, 'c': (4, 5, 6)}
update方法可以更行數(shù)據(jù)
d1.update({'a': 2, 'b': 2})
d1
Out[96]: {'a': 2, 'c': (4, 5, 6), 'b': 2}
方法keys和values則可以提取dict中的數(shù)據(jù)
d1.values()
Out[97]: dict_values([2, (4, 5, 6), 2])
d1.keys()
Out[98]: dict_keys(['a', 'c', 'b'])
使用zip方法可以將兩個(gè)sequence組成為dict
mapping = dict(zip(range(5), reversed(range(5))))
mapping
Out[102]: {0: 4, 1: 3, 2: 2, 3: 1, 4: 0}
set
set是一個(gè)無序、去重的集合桃煎。
set([2,2,1,3,3])
Out[103]: {1, 2, 3}
set與set可以進(jìn)行交集并集等運(yùn)算
a = set([1,2,3])
b = set([2,3,4])
a.union(b)
Out[106]: {1, 2, 3, 4}
a|b
Out[107]: {1, 2, 3, 4}
a.intersection(b)
Out[108]: {2, 3}
a&b
Out[109]: {2, 3}
Reference
Python for Data Analysis,2nd Edition