这是我到目前为止所做的:
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并按字母顺序打印它。任何提示都会很棒。
答案 0 :(得分:0)
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])
我确定有更多Pythonic方法可以做到这一点,但我的方法将返回一个列表列表,其中父列表中的每个子列表的格式如下:
["jk43", "23"]
因此,要获取第一个用户ID和ID号,请执行以下操作:
firstUserId = userIds[0][0] + ": " + userIds[0][1]
哪个会输出
“jk43:23”
要对ID列表进行排序,您可以执行以下操作:
userIds = sorted(userIds, key = id: id[0])
答案 1 :(得分: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]
答案 2 :(得分:0)
假设第一个“:”之前的部分是用户ID,你可以用更加pythonic的方式做到这一点:
with open("ex1.txt") as f:
lines = f.readlines()
userIDs = [l.split(":",1)[0] for l in lines]
print "\n".join(sorted(userIDs))