国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

head first python第五章

2019-11-08 00:49:48
字體:
來源:轉載
供稿:網友

該章為數據處理章節,主要介紹了集合類型list與set 包括列別推導式,序列操作符切片[:],sorted與list.sort區別等

一 列表推導式:

用于操作遍歷集合對象的值。返回一個新的集合類型。原來的數據未發生改變

[exPR for value in collection ifcondition]

如下示例:l_a的值并沒有發生改變,他返回一個值。

>>> l_a=[1,2,3,4,5,6]>>> [s+1 for s in l_a][2, 3, 4, 5, 6, 7]>>> print(l_a)[1, 2, 3, 4, 5, 6]>>>

如果要改變原來對象,需給原有變量賦值

>>> l_a=[s+1 for s in l_a]>>> print(l_a)[2, 3, 4, 5, 6, 7]

二 序列類型操作符

1.成員關系操作符 用于判斷一個元素是否屬于一個序列。

對象 [not] in 序列>>> l_a=[1,2,3,4,5,6]>>> 1 in l_aTrue>>> 9 in l_aFalse>>> 9 not in l_aTrue>>>

以上為用法,只是要告別find了。。。

2.連接操作符 (+) 不推薦使用,這個操作不是最快或者說最有效的。 對字符串來說,這個操作不如把所有字符串放到一個列別或可迭代對象種,然后調用一個join方法 節約內存;

join(...) S.join(iterable) -> str Return a string which is the concatenation of the strings in the iterable. The separator between elements is S.Help on method_descriptor:extend(...) L.extend(iterable) -> None -- extend list by appending elements from the iterable

類似的,對于列表來說,推薦用extend()方法把兩個或多個列表對象合并。 當需要把兩個對象簡單相加時采用 核心編程中的例子已然當掉了 3.5 range返回的是一個range對象不再是一個list

Traceback (most recent call last): File "<pyshell#53>", line 1, in <module> for i in [None] +range(-1,-len(s),-1) :TypeError: can only concatenate list (not "range") to list>>>

于是乎~~~~

3.重復操作符

sequence* copies_int>>> st=s*8>>> print(st)abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde

返回一個重復了 copies_int的新序列

4.切片操作符

>>> list_a=[1,2,3,4,5,6,7]>>> list_a[0:3]>>> list_a[0:6:2][1, 3, 5]>>> list_a[0:2:2][1]>>> list_a[0:2:2]>>> list_a[:-1] #這里感覺好666[1, 2, 3, 4, 5, 6]>>> list_a[:-2][1, 2, 3, 4, 5]>>>

5.用步長索引進行擴展的切片操作

>>> list_a[::-1] #翻轉操作[7, 6, 5, 4, 3, 2, 1]>>> list_a[::2] #隔一個取一個的操作[1, 3, 5, 7]

6.切片索引的更多內容 切片索引不會out_of_range

每次把最后一個砍掉

>>> for i in range(-1,-len(list_a),-1): print(list_a[:i])[1, 2, 3, 4, 5, 6][1, 2, 3, 4, 5][1, 2, 3, 4][1, 2, 3][1, 2][1]

核心編程第二版里面介紹的p105 頁 [None]+range(-1,-len(s),-1): 已經不好使了。因為range返回range對象,不是list了~~~

三 去掉list中重復的值

>>> list_a.append(6)>>> list_a[1, 2, 3, 4, 5, 6, 7, 6]>>> set_a=set(list_a)>>> set_a{1, 2, 3, 4, 5, 6, 7}>>> list_a[1, 2, 3, 4, 5, 6, 7,

恩,好簡單~ 原來的list_a 并沒有改變

四 sorted與list.sort()的區別 sorted非原址排序 list.sort()原址排序 里面有個很重要的地方是 list.sort的返回值為None~

sort(...) L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*

五 本章源碼

import osos.chdir('D:/python/hfpy_ch5_data')def GetFileDate(filename): try: with open(filename,'r') as data_file: data=data_file.readline() return data.strip('/n').split(',') except IOError as err: print(str(err)) return Nonedef sanitize(each_data): if '-' in each_data: (min,sec)=each_data.split('-') print(each_data) return (min+':'+sec) if '.' in each_data: print(each_data) (min,sec)=each_data.split('.') return (min+':'+sec) if ':' in each_data: return each_datajames_data= GetFileDate('james.txt')list_james=sorted(set([sanitize(s) for s in james_data]))[0:3]print(list_james)print(james_data)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 策勒县| 平阳县| 高雄市| 阿合奇县| 榆林市| 壶关县| 洛阳市| 柘城县| 黑河市| 汉沽区| 红桥区| 中超| 万全县| 文成县| 周口市| 阳原县| 巴塘县| 浙江省| 舒兰市| 砚山县| 扎鲁特旗| 大埔区| 萍乡市| 潼南县| 卢湾区| 南安市| 阿克| 通河县| 嘉禾县| 自治县| 桃江县| 双流县| 松桃| 乌兰县| 荥经县| 苗栗县| 瓮安县| 苗栗县| 德格县| 晋州市| 南靖县|