Python3 將txt數據轉換成列表,進行排序,篩選


Python 程序員需要知道的 30 個技巧

 

 

首先是數據:

將上邊的四個數據分別寫在新建的txt文件中

 

1、將txt數據轉為列表

with open('james.txt') as jaf:
    data = jaf.readline() #讀取數據行
    james = data.strip().split(',')#將數據轉換為列表

with open('julie.txt') as jul:
    data = jul.readline()
    julie = data.strip().split(',')

with open('sarah.txt') as sar:
    data = sar.readline()
    sarah = data.strip().split()
方法一
with open('james.txt') as jaf, open('julie.txt') as jul,open('sarah.txt') as sar:
    data = jaf.readline() #讀取數據行
    james = data.strip().split(',')#將數據轉換為列表

    data = jul.readline()
    julie = data.strip().split(',')

    data = sar.readline()
    sarah = data.strip().split()

print(james)
print(julie)
print(sarah)
方法二

 

2、排序:原地排序 james.sort()、復制排序:james2 = james.sorted()      默認升序,降序參數 sort(reverse= True)

由於數據中有-.:, 需要進一步操作

def sanitize(listt):
    if '-' in listt:
        splitter = '-'
    elif ':' in listt:
        splitter = ':'
    else:
        return (listt)
    (mine, sece) = listt.split(splitter)# 分裂字符串   結合字符串
    return (mine + '.' + sece)


def returnkist(string):
    with open(string) as jaf:
        data = jaf.readline()  # 讀取數據行
        james = data.strip().split(',')  # 將數據轉換為列表
        clean_james = []
        for ja in james:
            clean_james.append(sanitize(ja))
        clean_james.sort(reverse=True)

        return clean_james

clean = returnkist('james.txt')
print(clean)
方法一

 

def sanitize(listt):
    if '-' in listt:
        splitter = '-'
    elif ':' in listt:
        splitter = ':'
    else:
        return (listt)
    (mine, sece) = listt.split(splitter)# 分裂字符串   結合字符串
    return (mine + '.' + sece)



with open('james.txt') as jaf, open('julie.txt') as jul,open('sarah.txt') as sar:
    data = jaf.readline() #讀取數據行
    james = data.strip().split(',')#將數據轉換為列表

    data = jul.readline()
    julie = data.strip().split(',')

    data = sar.readline()
    sarah = data.strip().split()
clean_james = []
for ja in james:
    clean_james.append(sanitize(ja))
clean_james.sort()
print(clean_james)
方法二

 

3、要返回前三名的成績

def returnkist(string):
with open(string) as jaf:
data = jaf.readline() # 讀取數據行
james = data.strip().split(',') # 將數據轉換為列表
clean_james = [sanitize(s) for s in james]
clean_james.sort(reverse=True)

return [clean_james[a] for a in range(3)]
-----------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM