最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從零學(xué)python系列之?dāng)?shù)據(jù)處理編程實(shí)例(二)

 更新時(shí)間:2014年05月22日 09:10:04   作者:  
這篇文章主要介紹了python數(shù)據(jù)處理編程實(shí)例,需要的朋友可以參考下

在上一節(jié)從零學(xué)python系列之?dāng)?shù)據(jù)處理編程實(shí)例(一)的基礎(chǔ)上數(shù)據(jù)發(fā)生了變化,文件中除了學(xué)生的成績(jī)外,新增了學(xué)生姓名和出生年月的信息,因此將要成變成:分別根據(jù)姓名輸出每個(gè)學(xué)生的無(wú)重復(fù)的前三個(gè)最好成績(jī)和出生年月

數(shù)據(jù)準(zhǔn)備:分別建立四個(gè)文本文件

              james2.txt     James Lee,2002-3-14,2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22

              julie2.txt        Julie Jones,2002-8-17,2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

              mikey2.txt      Mikey McManus,2002-2-24,2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38

              sarah2.txt      Sarah Sweeney,2002-6-17,2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55

 在上一節(jié)基礎(chǔ)上,修改部分代碼,將新要求實(shí)現(xiàn)如下:

復(fù)制代碼 代碼如下:

import os
print(os.getcwd())
os.chdir('C:\Python33\HeadFirstPython\hfpy_code\chapter6')  #將工作空間修改為文件所在的目錄

#定義函數(shù)get_filedata從文件中取值
def get_filedata(filename):
    try:
        with open(filename)  as f:        #with語(yǔ)句打開(kāi)和自動(dòng)關(guān)閉文件
            data=f.readline()                 #從文件中逐行讀取字符
            data_list=data.strip().split(',')   #將字符間的空格清除后,用逗號(hào)分隔字符
            return({
                    "name" : data_list.pop(0),
                    "date_of_birth" : data_list.pop(0),
                    "times" : str(sorted(set([modify_time_format(s) for s in data_list]))[0:3])
                    })                                #使用字典將關(guān)聯(lián)的姓名,出生年月,時(shí)間鍵和值進(jìn)行存儲(chǔ)并返回
    except IOError as ioerr:
        print ('File Error' + str(ioerr))     #異常處理,打印錯(cuò)誤
        return (None)

#定義函數(shù)modify_time_format將所有文件中的時(shí)分表達(dá)方式統(tǒng)一為“分.秒”
def modify_time_format(time_string):
    if "-" in time_string:
        splitter="-"
    elif ":" in time_string:
        splitter=":"
    else:
        splitter="."
    (mins, secs)=time_string.split(splitter) #用分隔符splitter分隔字符后分別存入mins和secs
    return (mins+ '.' +secs)

#定義函數(shù)get_prev_three返回文件中排名前三的不重復(fù)的時(shí)間成績(jī)
def get_prev_three(filename):
    new_list=[modify_time_format(each_t) for each_t in get_filedata(filename)]   #采用列表推導(dǎo)將統(tǒng)一時(shí)分表達(dá)方式后的記錄生成新的列表
    delete_repetition=set(new_list)                                                                     #采用集合set函數(shù)刪除新列表中重復(fù)項(xiàng),并生成新的集合
    in_order=sorted(delete_repetition)                                                               #采用復(fù)制排序sorted函數(shù)對(duì)無(wú)重復(fù)性的新集合進(jìn)行排序
    return (in_order[0:3])     

#輸出james的排名前三的不重復(fù)成績(jī)和出生年月
james = get_filedata('james2.txt')
print (james["name"]+"'s fastest times are: " + james["times"])
print (james["name"] + "'s birthday is: "  + james["date_of_birth"])

#輸出julie的排名前三的不重復(fù)成績(jī)和出生年月
julie = get_filedata('julie2.txt')
print (julie["name"]+"'s fastest times are: " + julie["times"])
print (julie["name"] + "'s birthday is: "  + julie["date_of_birth"])

#輸出mikey的排名前三的不重復(fù)成績(jī)和出生年月
mikey = get_filedata('mikey2.txt')
print (mikey["name"]+"'s fastest times are: " + mikey["times"])
print (mikey["name"] + "'s birthday is: "  + mikey["date_of_birth"])

#輸出sarah的排名前三的不重復(fù)成績(jī)和出生年月
sarah = get_filedata('sarah2.txt')
print (sarah["name"]+"'s fastest times are: " + sarah["times"])
print (sarah["name"] + "'s birthday is: "  + sarah["date_of_birth"])

通過(guò)建立繼承內(nèi)置list的類AthleteList,將方法定義在類中實(shí)現(xiàn)相同功能:

復(fù)制代碼 代碼如下:

import os
print(os.getcwd())
os.chdir('C:\Python33\HeadFirstPython\hfpy_code\chapter6')  #將工作空間修改為文件所在的目錄

#定義類AthleteList繼承python內(nèi)置的list
class AthleteList(list):
    def __init__(self, name, dob=None, times=[]):
        list.__init__([])
        self.name=name
        self.dob=dob
        self.extend(times)
    def get_prev_three(self):
        return (sorted(set([modify_time_format(t) for t in self]))[0:3])

def get_filedata(filename):
    try:
        with open(filename)  as f:        #with語(yǔ)句打開(kāi)和自動(dòng)關(guān)閉文件
            data=f.readline()                 #從文件中逐行讀取字符
            data_list=data.strip().split(',')   #將字符間的空格清除后,用逗號(hào)分隔字符
            return(
                   AthleteList(data_list.pop(0), data_list.pop(0), data_list)
                   )                                #使用字典將關(guān)聯(lián)的姓名,出生年月,時(shí)間鍵和值進(jìn)行存儲(chǔ)并返回
    except IOError as ioerr:
        print ('File Error' + str(ioerr))     #異常處理,打印錯(cuò)誤
        return (None)

def modify_time_format(time_string):
    if "-" in time_string:
        splitter="-"
    elif ":" in time_string:
        splitter=":"
    else:
        splitter="."
    (mins, secs)=time_string.split(splitter) #用分隔符splitter分隔字符后分別存入mins和secs
    return (mins+ '.' +secs)

james = get_filedata('james2.txt')
print (james.name+"'s fastest times are: " + str(james.get_prev_three()))

julie = get_filedata('julie2.txt')
print (julie.name+"'s fastest times are: " + str(julie.get_prev_three()))

mikey = get_filedata('mikey2.txt')
print (mikey.name+"'s fastest times are: " + str(mikey.get_prev_three()))

sarah = get_filedata('sarah2.txt')
print (sarah.name+"'s fastest times are: " + str(sarah.get_prev_three()))

相關(guān)文章

  • python 動(dòng)態(tài)繪制愛(ài)心的示例

    python 動(dòng)態(tài)繪制愛(ài)心的示例

    這篇文章主要介紹了python 動(dòng)態(tài)繪制愛(ài)心的示例,幫助大家利用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法

    Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法

    這篇文章主要介紹了Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法,適用于數(shù)據(jù)較多時(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • tensorflow入門:tfrecord 和tf.data.TFRecordDataset的使用

    tensorflow入門:tfrecord 和tf.data.TFRecordDataset的使用

    今天小編就為大家分享一篇tensorflow入門:tfrecord 和tf.data.TFRecordDataset的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 一文帶你掌握Python中多線程和線程池的使用方法

    一文帶你掌握Python中多線程和線程池的使用方法

    Python中的多線程和線程池是其強(qiáng)大的功能之一,可以讓我們更加高效地利用CPU資源,提高程序的運(yùn)行速度。本文將介紹Python中多線程和線程池的使用方法,并提供一些實(shí)用的案例供讀者參考
    2023-04-04
  • 淺談Python如何獲取excel數(shù)據(jù)

    淺談Python如何獲取excel數(shù)據(jù)

    這篇文章主要介紹了Python如何獲取excel數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 詳解python命令提示符窗口下如何運(yùn)行python腳本

    詳解python命令提示符窗口下如何運(yùn)行python腳本

    這篇文章主要介紹了詳解python命令提示符窗口下如何運(yùn)行python腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python實(shí)現(xiàn)一個(gè)轉(zhuǎn)存純真IP數(shù)據(jù)庫(kù)的腳本分享

    Python實(shí)現(xiàn)一個(gè)轉(zhuǎn)存純真IP數(shù)據(jù)庫(kù)的腳本分享

    工作中我們常需要使用純真IP數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)做分析,下面這篇文章主要給大家介紹了利用Python如何實(shí)現(xiàn)一個(gè)轉(zhuǎn)存純真IP數(shù)據(jù)庫(kù)的相關(guān)資料,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • 利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)

    利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)

    這篇文章主要介紹了利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Python面向?qū)ο筇厥獬蓡T

    Python面向?qū)ο筇厥獬蓡T

    這篇文章主要介紹了Python面向?qū)ο筇厥獬蓡T的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 利用Python為女神制作一個(gè)專屬網(wǎng)站

    利用Python為女神制作一個(gè)專屬網(wǎng)站

    520不知道送什么禮物?快跟隨小編一起學(xué)習(xí)一下如何利用Python語(yǔ)言制作一個(gè)專屬的網(wǎng)站送給女神吧!文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-05-05

最新評(píng)論

镇巴县| 伊金霍洛旗| 巩义市| 昆山市| 长丰县| 兴义市| 米泉市| 华阴市| 芜湖县| 瑞安市| 望谟县| 图们市| 深泽县| 海晏县| 灵丘县| 西藏| 同心县| 东明县| 大石桥市| 仙游县| 武清区| 蚌埠市| 梁山县| 成武县| 民丰县| 栾城县| 莱芜市| 商城县| 驻马店市| 济源市| 嘉鱼县| 库车县| 宁夏| 陈巴尔虎旗| 青田县| 新乡市| 阿瓦提县| 汪清县| 祥云县| 胶南市| 泾川县|