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.姓名(性别):数字 而不是['名称','性别',数字]
我在做字符串事情时遇到了麻烦。它不会给我带来好的输出。有什么帮助吗?
由于
答案 0 :(得分:2)
return print(sorted(results, key=operator.itemgetter(1,2)))
并没有按照您的预期行事。
由于print()
返回None
,您的函数将return None
。摆脱print语句(如果你想打印该行,只需在返回之前将其放入)
然后你可以在main()
函数中执行:
for person in mkEntry(file1):
print("1. {0} ({1}): {2}".format(*person))