[英]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.