所以我有一个文本文件,其中包含“姓名”,“姓氏”,“年龄”以及多行数据。
我已经能够从文件中提取“年龄”,并能够将其从最早到最老。现在唯一的问题是,我想显示列表中的所有人员,但要按从大到小的顺序显示他们的姓名和姓氏。
我对于每一行都有单独的变量。例如,Name1 =“ John”,“ Doe”,“ 16”。 Name2 =“ Doe”,“ John”,“ 16”。我知道这样做很不好,但是我不知道该怎么办。
和Age = [24,14,16]
没有qoutes
我想到了
if Age[2] in Name1[2]:
#John Doe is 16
但是问题是,当我将从文件中提取的点添加到列表中时,它显示为[14,25,25]
而不是["14","25", "25"]
。
由于变量中的数字为“ 25”,年龄列表中的数字为25。
这是我第一次在此处发布信息,对于格式错误或对我的帖子毫无意义,我感到抱歉。请随时告诉我,我很乐于进一步解释。
感谢您的阅读,希望对您有所帮助。另外,如果您对我对Name1进行硬编码有什么解决方案,也请让我知道。
答案 0 :(得分:2)
您可以使用字典列表(一个用户可以使用一个字典):
users = [{'name':'john','surname':'doe','age':16}, ...{...}]
要按年龄顺序订购字典,可以使用:
newlist = sorted(users, key=lambda k: k['age'])
答案 1 :(得分:0)
一种简单的解决方案是将Age [2]解析为字符串。
str(Age[2]) in Name1
由于Name1 =“ John”,“ Doe”,“ 16”将返回一个元组。因此,“ in”运算符可以与Name1一起使用,而无需指定索引。
答案 2 :(得分:0)
您可以从文本文件中使用“名称”,“姓氏”,“年龄”列创建数据框。
然后使用熊猫的data.sort_values(by = ['Age'],ascending = False),这将自动返回所需的结果。