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

首頁 > 編程 > Python > 正文

Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)同時(shí)對(duì)數(shù)據(jù)做轉(zhuǎn)換和換算處理操作示例

2020-01-04 15:25:25
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python同時(shí)對(duì)數(shù)據(jù)做轉(zhuǎn)換和換算處理操作。分享給大家供大家參考,具體如下:

問題:我們需要調(diào)用一個(gè)換算函數(shù)(例如sum()min()max()),但是首先需對(duì)數(shù)據(jù)做轉(zhuǎn)換或者篩選處理

解決方案:非常優(yōu)雅的方法---在函數(shù)參數(shù)中使用生成器表達(dá)式

例如:

# 計(jì)算平方和nums=[1,2,3,4,5]s1=sum((x*x for x in nums))s2=sum(x*x for x in nums) #更優(yōu)雅的用法s3=sum([x*x for x in nums]) #不使用生成器表達(dá)式print(s1)print(s2)print(s3)# 判斷一個(gè)目錄下是否存在.py文件import osfiles = os.listdir(os.path.expanduser('~'))print (files)if any(name.endswith('.py') for name in files):  print('There be python!')else:  print('Sorry, no python.')# Output a tuple as CSVs = ('ACME', 50, 123.45)print(','.join(str(x) for x in s))# Data reduction across fields of a data structureportfolio = [  {'name':'GOOG', 'shares': 50},  {'name':'YHOO', 'shares': 75},  {'name':'AOL', 'shares': 20},  {'name':'SCOX', 'shares': 65}]min_shares = min(s['shares'] for s in portfolio)print(min_shares)min_shares2 = min(portfolio,key=lambda s:s['shares']) #使用生成器表達(dá)式print(min_shares2)

運(yùn)行結(jié)果:

55
55
55
['.idlerc', '.oracle_jre_usage', 'AppData', 'Application Data', 'Contacts', 'Cookies', 'Desktop', 'Documents', 'Downloads', 'Favorites', 'HelloWorld', 'HelloWorld.zip', 'Links', 'Local Settings', 'log.html', 'Music', 'My Documents', 'mysite', 'mysite.zip', 'NetHood', 'NTUSER.DAT', 'ntuser.dat.LOG1', 'ntuser.dat.LOG2', 'NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TM.blf', 'NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000001.regtrans-ms', 'NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000002.regtrans-ms', 'ntuser.ini', 'output.xml', 'Pictures', 'pip', 'PrintHood', 'Recent', 'report.html', 'Saved Games', 'Searches', 'SendTo', 'Templates', 'Videos', '「開始」菜單']
Sorry, no python.
ACME,50,123.45
20
{'shares': 20, 'name': 'AOL'}

總結(jié):

該方案展示了當(dāng)把生成器表達(dá)式作為函數(shù)的參數(shù)時(shí)在語法上的一些微妙之處(即,不必重復(fù)使用圓括號(hào)),比如,如下的兩行代碼表示的是同一個(gè)意思:

s=sum((x*x for x in nums))s=sum(x*x for x in nums) #更優(yōu)雅的用法s3=sum([x*x for x in nums]) #不使用生成器表達(dá)式

比起首先創(chuàng)建一個(gè)臨時(shí)列表,使用生成器做參數(shù)更為高效和優(yōu)雅。

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 仁化县| 塔城市| 澜沧| 平和县| 元朗区| 莆田市| 三都| 克拉玛依市| 清水河县| 绥棱县| 北安市| 静乐县| 墨脱县| 繁昌县| 弥勒县| 天长市| 休宁县| 博白县| 沙田区| 尼勒克县| 交城县| 陆河县| 长宁县| 石渠县| 周至县| 桑植县| 屏南县| 大洼县| 黄大仙区| 蛟河市| 河西区| 沙田区| 湖口县| 历史| 禹州市| 东乡族自治县| 莱西市| 昂仁县| 洛扎县| 朝阳县| 达尔|