我得列两张单子。一个有名字(str),第二个有工资(int)。然后,我得把工资和名字分类。问题是,当我这样做的时候,只有工资是排序的。在
names = ["Asia","Łukasz","Aneta","Ola","Mikołaj"]
wages = [15000,1500,200,14500,2600]
print("Here(should) be sorted list")
wages.sort()
for i in range (len(wages)) :
print(wages[i],names[i])
为了清楚起见,我想把这两张单子放在一起,并对它们进行排序。用最简单的方法。没有功能,集合,拉链等,只有循环。在
对,没有拉链和电视机。我们会很难做到的。在
首先,复制工资:
对副本排序:
^{pr2}$现在,在副本上迭代并找到相应的原始名称:
这是愚蠢的,如果你有重复的名字或重复的工资,但它不使用压缩或设置。在
原始溶液:
我们从您的列表开始:
合并它们:
按第二个元素排序:
并打印:
好吧,很好。如果您不想以任何方式合并列表,那么您需要手动编写一个排序算法,返回一系列移动,您可以应用于这两个列表,使它们按相同的顺序排列。如果您的列表中只有唯一的元素,则可以通过对一个列表进行排序,然后查看每个元素的移动位置,并将相同的更改应用于另一个列表,从而简化此过程。在
更理智的回答
有两个相互依赖的列表,即元素在列表中的位置。在
你需要根据你想要的分类来决定,是按名字还是按工资?在
您可以使用循环轻松地
zip
这两个列表然后使用
sort
和key = lambda x: x[0]
按工资排序,key = lambda x: x[1]
按姓名排序。在如果您只想用循环来实现这一点,您可以自己实现一些排序算法,并在}中交换相应的元素。在
names
和{下面是一个使用气泡排序的示例:
相关问题 更多 >
编程相关推荐