Python - 没有引号的数字列表

问题描述 投票:1回答:3

所以我有一个文本文件,其中包含“姓名”,“姓氏”,“年龄”,包含多行数据。

我已经能够从文件中提取“年龄”,并且能够将它从最老到最年轻。现在唯一的问题是,我想显示列表中的所有人,但是从最老到最小的同时显示他们的姓名。

我也为每一行都有单独的变量。例如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进行硬编码的解决方案,请告诉我。

python python-3.x
3个回答
2
投票

您可以使用dicts列表(一个用户的一个dict):

["14","25", "25"]

按年龄顺序排列您可以使用的dicts列表:

users = [{'name':'john','surname':'doe','age':16}, ...{...}] 

0
投票

一个简单的解决方案是将Age [2]解析为字符串。

newlist = sorted(users, key=lambda k: k['age']) 

由于Name1 =“John”,“Doe”,“16”将返回一个元组。因此“in”运算符可以与Name1一起使用而不指定索引。


0
投票

您可以使用“Name”,“Surname”,“Age”列从文本文件创建数据框。

然后使用pandas的data.sort_values(by = ['Age'],ascending = False),这将自动返回所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.