为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Python 中的文本文档中枚举和排序列表

如何从 Python 中的文本文档中枚举和排序列表

绝地无双 2021-08-24 16:31:56
我正在尝试使用文本文档在 python 中枚举一个列表。我已读入文档,但似乎无法对它们进行排序或枚举。目标是调用他们完成比赛的时间,对它们进行排序,然后按完成顺序枚举它们。输出总是: (['18:44'], generator object enumerate at 0x0000000003143630) 我不知道为什么说“generator object enumerate at 0x0000000003143630”或如何枚举排序列表。def get_sec(time_str):    h, m = time_str.split(':')    return int(h) * 3600 + int(m) * 60def enumerate(sequence, start=0):    n = start    for elem in sequence:        yield n, elem        n += 1with open("Race_Results_Sample.txt", "r")as myList:    myList = myList.read()    myList = [l.split(",") for l in myList.splitlines()]    myList = sorted(myList, key=lambda kv: kv[1])for line in myList:    num, last, org, time = line    place = []    place.append(time)    placenum = enumerate(sorted(place))    print(place, placenum)for line in myList:    num, last, org, time = line    new_time = get_sec(time)    mile = round((((new_time/ 3.10686)/60)/60), 3)    mile = str(mile)    print ('{:<20s}{:<5s}{:<5s}{:<7s}{:<10s}'.format(last, num, org, time, mile))第一个“for line in myList”只是一个测试,看看它自己是如何工作的。我最终会将它放在第二个“for line in myList”部分,以进一步清理代码。预先感谢您的帮助。这是当前的输出(['18:44'], generator object enumerate at 0x0000000003143630>)(['18:23'], generator object enumerate at 0x0000000003143678>)(['18:28'], generator object enumerate at 0x0000000003143630>)(['18:36'], generator object enumerate at 0x0000000003143678>)(['19:05'], generator object enumerate at 0x0000000003143630>)(['19:10'], generator object enumerate at 0x0000000003143678>)(['18:22'], generator object enumerate at 0x0000000003143630>)(['18:03'], generator object enumerate at 0x0000000003143678>)(['18:49'], generator object enumerate at 0x0000000003143630>)(['19:01'], generator object enumerate at 0x0000000003143678>)进程已完成,退出代码为 0
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

enumerate不返回列表,而是一种特殊的生成器。写

placenum = list(enumerate(sorted(place)))

你的程序的行为会更有意义。或者,您可以enumerate()直接在for循环中使用(使用)调用,就好像它是一个列表一样。例如

for rank, value in enumerate(sorted(place)):
    print(rank, value)


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号