gpt4 book ai didi

python - 根据一个列表对Python中的五个列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:35 25 4
gpt4 key购买 nike

所以,我有五个列表。

placeName
placeType
population
latitude
longitude

现在,我想根据人口排序。这些列表都带有标题标题(它是从 .csv 文件导入的),因此我使用

删除这些标题
del list[0]

这是我的问题。如果我运行这种排序:

sortedPop = sorted(population, key=float, reverse=True);

我得到了正确排序的人口列表:

['8173941', '1085810', '589900', '552267', '535907', '518090', '510746', '474632', '468720', '443760', '349561', '335145', '325949', '289301', '284321', '270726', '268064', '265178', '255394', '253651', '238137', '234982', '229700', '218791', '218705', '215173', '211228', '194189', '189120', '187503', '186682', '182441', '179485', '175547', '174700', '174286', '171750', '165456', '162949', '161707', '159994', '155298', '154718', '152841', '147663', '145818', '144957', '144170', '142968', '142723', '136362', '134022', '131982', '128060', '123187', '120256', '120046', '119441', '117963', '116447', '113507', '110507', '109805', '109691', '109185', '109120', '109015', '107926', '107627', '107355', '107123', '106943', '105878', '105367', '104157', '103886', '103608', '102885', '100160', '100153', '99251', '97886', '96555', '95580', '94932', '94782', '92363', '91930', '91703', '91297', '91053', '89663', '88855', '88483', '88243', '88134', '87590', '86552', '86011', '83641']

如果我运行这个:

popPlace = zip(population, placeName);
popPlace.sort(reverse=True);

我不:

[('99251', 'Wakefield'), ('97886', 'Preston'), ('96555', 'Oldham'), ('95580', 'Rayleigh'), ('94932', 'Hemel Hempstead'), ('94782', 'Bath'), ('92363', 'Darlington'), ('91930', 'West Bromwich'), ('91703', 'Southport'), ('91297', 'Barnsley'), ('91053', 'Hastings'), ('89663', 'Stevenage'), ('88855', 'Hartlepool'), ('88483', 'Chesterfield'), ('88243', 'Grimsby'), ('88134', 'Halifax'), ('87590', 'Bedford'), ('86552', 'Nuneaton'), ('86011', 'Chester'), ('83641', 'Weston-Super-Mare'), ('8173941', 'London'), ('589900', 'Glasgow'),

等等

基本上,它不能对不同数量级的数字进行排序,除非给定 key=float。但是,我不能在 zip 上使用 key=float,因为它会给我一个错误:TypeError: float() argument must be a string or a number.

那么,我怎样才能让这个东西正确排序呢?

此外,所有五个列表是否可以捆绑到一个 zip 中并正确排序?我假设它只是 zip(placeName,placeType,population,latitude,longitude) 等。

最佳答案

首先,您应该使用 pandas 来完成所有这些工作,因为它将为您的数据提供一个很好的表结构,而不必跟踪单独的列表(请参阅 http://pandas.pydata.org/ )。

对于这种特殊情况,在第二个示例中使用 key=float 会失败,因为您不是只迭代可以直接转换为数字的字符串,而是迭代 (population, name) 元组。您可以在排序中使用类似 key=lambda x: int(x[0]) 的内容,但最好通过添加一行 population 将总体转换为整数= map(int,population) 在执行任何这些操作之前。

关于python - 根据一个列表对Python中的五个列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33305272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com