所以我有一个文本文件,其中包含“姓名”,“姓氏”,“年龄”,包含多行数据。
我已经能够从文件中提取“年龄”,并且能够将它从最老到最年轻。现在唯一的问题是,我想显示列表中的所有人,但是从最老到最小的同时显示他们的姓名。
我也为每一行都有单独的变量。例如Name1 =“John”,“Doe”,“16”。 Name2 =“Doe”,“John”,“16”。我知道这是一个不好的方法,但我不知道该怎么做。
和qazxsw poi没有引号
我想到了
Age = [24,14,16]
但问题是当我将从文件中提取的点添加到列表中时,它显示为if Age[2] in Name1[2]:
#John Doe is 16
而不是[14,25,25]
。
由于其“25”上的变量和25岁的年龄列表。
这是我第一次在这里发帖,所以我很抱歉,如果我的格式错误或者我的帖子完全没有意义。请随意给我发消息,我将非常乐意进一步解释。
感谢您的阅读,希望您能提供帮助。另外,如果你有任何关于我对Name1进行硬编码的解决方案,请告诉我。
您可以使用dicts列表(一个用户的一个dict):
["14","25", "25"]
按年龄顺序排列您可以使用的dicts列表:
users = [{'name':'john','surname':'doe','age':16}, ...{...}]
一个简单的解决方案是将Age [2]解析为字符串。
newlist = sorted(users, key=lambda k: k['age'])
由于Name1 =“John”,“Doe”,“16”将返回一个元组。因此“in”运算符可以与Name1一起使用而不指定索引。
您可以使用“Name”,“Surname”,“Age”列从文本文件创建数据框。
然后使用pandas的data.sort_values(by = ['Age'],ascending = False),这将自动返回所需的结果。