0
import operator

def mkEntry(file1):
    results = []
    for line in file1:
        lst = line.rstrip().split(",")
        lst[2] = int(lst[2])
        results.append(lst)
    return print(sorted(results, key=operator.itemgetter(1,2)))


def main():
    openFile = 'names/' + 'yob' + input("Enter the Year: ") + '.txt'
    file1 = open(openFile)
    mkEntry(file1)

main()

文件:

Emily,F,25021
Emma,F,21595
Madison,F,20612
Olivia,F,16100
Joaquin,M,711
Maurice,M,711
Kade,M,701
Rodrigo,M,700
Tate,M,699

我如何打印出结果如下所示: 1. 姓名(性别):数字而不是 ['name', 'gender', numbers]

我在做字符串的事情时遇到了麻烦。它不会给我很好的输出。有什么帮助吗?

谢谢

4

1 回答 1

2

return print(sorted(results, key=operator.itemgetter(1,2)))没有做你期望的事情。

因为print()返回None,你的函数会return None。去掉 print 语句(如果要打印行,就放在return之前)

然后你可以在你的main()函数中做:

for person in mkEntry(file1):
    print("1. {0} ({1}): {2}".format(*person))
于 2013-10-13T03:44:59.790 回答