如何按姓名/年龄分别对名单进行排序?

2024-09-30 20:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

另外,如果我想按他们的年龄分类,我怎么做呢? 我试过了我的文件.sort(),但它破坏了代码 “对象没有属性'sort'”

fileName = "GuestList.csv"
ACCESSMODE = "w"
name = " "
nbrGuest = " "

myFile = open(fileName, ACCESSMODE)
nbrGuest = input("How many guests do you have? ")
for index in range (int(nbrGuest)) :
    name = input("Enter guest name: " ).capitalize()
    age = input("Enter guest age: " )
    myFile.write(name + "," + age  + "\n")
myFile.close()

Tags: 文件对象代码nameinputage分类filename
2条回答

重复问题:sort-csv-by-column

import operator
sortedlist = sorted(reader, key=operator.itemgetter(3), reverse=True)
or use lambda

sortedlist = sorted(reader, key=lambda row: row[3], reverse=True)

请注意,只有变量中的列表将被排序,而不是文件。你得先把列表排序,然后再写第二遍。在

所以代码现在被分成两部分。在

fileName = "GuestList.csv"
ACCESSMODE = "w"
name = " "
nbrGuest = " "


nbrGuest = input("How many guests do you have? ")
guest_list = []
for index in range(int(nbrGuest)):
    name = input("Enter guest name:\t").capitalize()
    age = input("Enter guest age:\t")
    guest_list.append((name, age))

guest_list.sort(key=lambda x: x[1])
with open(fileName, ACCESSMODE) as myFile:
    for guest in guest_list:
        myFile.write(guest[0] + "," + guest[1] + "\n")

第一部分接受用户输入并将所有信息存储在元组列表中。每个tuple看起来像是('ALEX', '24')。客人列表完成后,根据客人的年龄使用.sort()方法进行适当排序(最年轻的先,使用,reverse=True颠倒顺序)。最后,将排序后的名称和时间写入由with语句管理的文件,这样您就不必担心关闭或刷新它了。在

相关问题 更多 >