簡體   English   中英

將文件拆分為列表

[英]Split a file into a list

這是我到目前為止的內容:

EX1 = open('ex1.txt')
EX1READ = EX1.read()
X1READ.splitlines(0)

['jk43:23 Marfield Lane:Plainview:NY:10023',
 'axe99:315 W. 115th Street, Apt. 11B:New      York:NY:10027',
 'jab44:23 Rivington Street, Apt. 3R:New York:NY:10002',
 'ap172:19 Boxer Rd.:New York:NY:10005',
 'jb23:115 Karas Dr.:Jersey City:NJ:07127',
 'jb29:119 Xylon Dr.:Jersey City:NJ:07127',
 'ak9:234 Main Street:Philadelphia:PA:08990']

我希望能夠從此列表中獲取userId並將其按字母順序打印。 任何提示都會很棒。

userIds = []

EX1 = open('ex1.txt')
X1READ = EX1.readlines()

for line in X1READ:
    useridname = line.split(" ")[0].split(":")[0];
    userid = line.split(" ")[0].split(":")[1]
    userIds.append([useridname, userid])

我確定還有更多Python方式可以執行此操作,但是我的方法將返回一個列表列表,其中父列表中的每個子列表的格式如下:

["jk43", "23"]

因此,要獲取第一個用戶ID和ID號,請執行以下操作:

firstUserId = userIds[0][0] + ": " + userIds[0][1]

哪個會輸出

“ jk43:23”

要對ID列表進行排序,您需要執行以下操作:

userIds = sorted(userIds, key = id: id[0])

這樣做:

IDs=[]
with open('ex1.txt', 'rb') as f:
    for line in f:
        IDs.append(line.split(':')[0])

print sorted(IDs)     

印刷品:

['ak9', 'ap172', 'axe99', 'jab44', 'jb23', 'jb29', 'jk43']

如果您的用戶ID類似於jk43:23使用IDs.append(line.split(' ')[0])並顯示:

['ak9:234', 'ap172:19', 'axe99:315', 'jab44:23', 'jb23:115', 'jb29:119', 'jk43:23']

如果您的用戶ID僅是數字,請使用IDs.append(int(line.split(' ')[0].split(':')[1]))打印:

[19, 23, 23, 115, 119, 234, 315]

假設第一個“:”之前的部分是userID,您可以使用類似Python這樣的方式進行操作:

with open("ex1.txt") as f:
    lines = f.readlines()
    userIDs = [l.split(":",1)[0] for l in lines]
    print "\n".join(sorted(userIDs))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM