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 に答える