日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python字典获取关联值_【Python实战12】使用字典关联数据

發布時間:2023/12/9 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字典获取关联值_【Python实战12】使用字典关联数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在我的手里有了新的一組數據,數據內容如下:

james.txt:

James Lee,2002-3-14,2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22,2-01,2.01,2:16julie.txt:Julie Jones,2002-8-17,2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21,3.01,3.02,2:59mikey.txt:Mikey McManus,2002-2-24,2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38,2:40,2.22,2-31sarah.txt:Sarah Sweeney,2002-6-17,2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55,2:22,2-21,2.22我們可以看到數據格式為姓名,出生年月和一系列的時間列表,現在希望的是打印每個文件中的人的姓名、出生年月和最快的三個時間。現在我們先編寫一段簡單的代碼來實現這個功能,代碼如下:"""轉換時間格式"""

def sanitize(time_string):

if ‘-‘ in time_string:

splitter=‘-‘

elif ‘:‘ in time_string:

splitter=‘:‘

else:

return(time_string)

(mins,secs)=time_string.split(splitter)

return(mins+‘.‘+secs)

"""讀取文件內容,并按逗號進行拆分"""

def get_coach_data(filename):

try:

with open(filename) as file:

data = file.readline()

return(data.strip().split(‘,‘))

except IOError as error:

print(‘File Error:‘+str(error))

return(None)

"""讀取sarah.txt的內容"""

sarah = get_coach_data(‘sarah.txt‘)

"取出姓名和生日"

(sarah_name,sarah_birthday) = sarah.pop(0),sarah.pop(0)

"""打印姓名、生日和最快的三個時間"""

print(sarah_name+"的生日是:"+sarah_birthday+",最快的三個時間是:"+str(sorted(set([sanitize(t) for t in sarah]))[0:3]))這段代碼非常的簡單,只是將前兩篇文章中的內容整合到了一起,如果不是很熟悉的話可以參看【python實戰】的前面兩篇文章。運行效果如下:>>> ================================ RESTART ================================

>>>

Sarah Sweeney的生日是:2002-6-17,最快的三個時間是:[‘2.18‘, ‘2.21‘, ‘2.22‘]這里我們只是通過自己編碼實現了我們想要的功能,但是我們回過頭看下我們編寫的代碼,可以看到,代碼似乎有些不太合理,我們只是讀取sarah的內容就定義了三個變量,如果再加上其他三個人的話就有12個變量了,如果要是有40、400、4000個人呢?所以這里我們就要使用一個數據字典的功能。

關于數據字典我們下面舉幾個例子,如下:

1、創建兩個字典,一個用大括號創建,另一個用工廠創建

>>> clesse={}

>>> palin=dict()

>>>

>>> type(clesse)

>>> type(palin)

2、通過鍵值關聯,分別向這兩個字典中增加一些數據

>>> clesse[‘name‘] = ‘zhangsan‘

>>> clesse[‘birthday‘] = ‘2002-06-12‘

>>> palin = {‘name‘:‘wangwu‘,‘occupations‘:[‘comedian‘,‘actor‘,‘writer‘,‘tv‘]}3、鍵與值關聯之后,我們就可以通過鍵進行值的調用了,如下:

>>> clesse[‘name‘]

‘zhangsan‘

>>> palin[‘occupations‘][-1]

‘tv‘4、可以顯示字典全部內容:

>>> clesse

{‘name‘: ‘zhangsan‘, ‘birthday‘: ‘2002-06-12‘}

>>> palin

{‘occupations‘: [‘comedian‘, ‘actor‘, ‘writer‘, ‘tv‘], ‘name‘: ‘wangwu‘}通過上面的例子,我們可以了解到數據字典其實就是鍵值的對應,了解了數據字典之后,我們能不能使用數據字典來修改之前的代碼呢?先讓我們來嘗試一下吧:"""轉換時間格式"""

def sanitize(time_string):

if ‘-‘ in time_string:

splitter=‘-‘

elif ‘:‘ in time_string:

splitter=‘:‘

else:

return(time_string)

(mins,secs)=time_string.split(splitter)

return(mins+‘.‘+secs)

"""讀取文件內容,并按逗號進行拆分"""

def get_coach_data(filename):

try:

with open(filename) as file:

data = file.readline()

return(data.strip().split(‘,‘))

except IOError as error:

print(‘File Error:‘+str(error))

return(None)

"""讀取sarah.txt的內容"""

sarah = get_coach_data(‘sarah.txt‘)

"定義sarah數據字典"

sarah_data={}

"向sarah數據字典中存入內容"

sarah_data[‘name‘]=sarah.pop(0)

sarah_data[‘birthday‘]=sarah.pop(0)

sarah_data[‘time‘]=sarah

"""打印姓名、生日和最快的三個時間"""

print(sarah_data[‘name‘]+"的生日是:"+sarah_data[‘birthday‘]+",最快的三個時間是:"+str(sorted(set([sanitize(t) for t in sarah_data[‘time‘]]))[0:3]))我們修改原先的代碼,將之前的變量定義轉換成了現在的數據字典,通過數據字典進行數據的操作,現在我們運行,查看結果:

>>> ================================ RESTART ================================

>>>

Sarah Sweeney的生日是:2002-6-17,最快的三個時間是:[‘2.18‘, ‘2.21‘, ‘2.22‘]結果和之前也是一樣的,現在我們繼續修改代碼,以適應多個文件的讀取和內容的操作,代碼如下:"""轉換時間格式"""

def sanitize(time_string):

if ‘-‘ in time_string:

splitter=‘-‘

elif ‘:‘ in time_string:

splitter=‘:‘

else:

return(time_string)

(mins,secs)=time_string.split(splitter)

return(mins+‘.‘+secs)

"""讀取文件內容,并按逗號進行拆分"""

def get_coach_data(filename):

try:

with open(filename) as file:

data = file.readline()

temp=data.strip().split(‘,‘)

return({‘name‘:temp.pop(0),‘birthday‘:temp.pop(0),‘time‘:str(sorted(set([sanitize(t) for t in temp]))[0:3])})

except IOError as error:

print(‘File Error:‘+str(error))

return(None)

"""讀取文件的內容"""

james = get_coach_data(‘james.txt‘)

julie = get_coach_data(‘julie.txt‘)

mikey = get_coach_data(‘mikey.txt‘)

sarah = get_coach_data(‘sarah.txt‘)

"""打印姓名、生日和最快的三個時間"""

print(james[‘name‘]+"的生日是:"+james[‘birthday‘]+",最快的三個時間是:"+james[‘time‘])

print(julie[‘name‘]+"的生日是:"+julie[‘birthday‘]+",最快的三個時間是:"+julie[‘time‘])

print(mikey[‘name‘]+"的生日是:"+mikey[‘birthday‘]+",最快的三個時間是:"+mikey[‘time‘])

print(sarah[‘name‘]+"的生日是:"+sarah[‘birthday‘]+",最快的三個時間是:"+sarah[‘time‘])這里我們修改了get_coach_data函數,讓其直接返回一個數據字典,這樣就會很方便了,運行結果如下:

>>> ================================ RESTART ================================

>>>

James Lee的生日是:2002-3-14,最快的三個時間是:[‘2.01‘, ‘2.16‘, ‘2.22‘]

Julie Jones的生日是:2002-8-17,最快的三個時間是:[‘2.11‘, ‘2.23‘, ‘2.59‘]

Mikey McManus的生日是:2002-2-24,最快的三個時間是:[‘2.22‘, ‘2.31‘, ‘2.38‘]

Sarah Sweeney的生日是:2002-6-17,最快的三個時間是:[‘2.18‘, ‘2.21‘, ‘2.22‘]很好,我們成功的完成了我們想要的功能。

原文:http://blog.csdn.net/wukongcode/article/details/19307635

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python字典获取关联值_【Python实战12】使用字典关联数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。