如何按字母顺序对列表进行排序,并按顺序排列其他列表

时间:2010-04-01 18:34:00

标签: python list sorting

我有3个列表,每个列表都有相同的元素:电子邮件地址,工资和ID

我想按字母顺序对电子邮件地址进行排序,以某种方式对其他2个列表(工资和ID)进行排序。

E.g.,
Emails:
z@company.com
a@company.com

Salaries:
50000
60000

IDs:
2
1

谜题: 我想对电子邮件进行排序,以便a@c.com是第一个,z @ c.com是最后一个,工资是60000然后是50000,ID是1然后是2。

其他细节:
1.列表长度相同,可以长于两个元素 2.我随后将ID传递给函数以检索更多列表。这些列表不需要排序,因为它们将采用 ID列表的顺序。

3 个答案:

答案 0 :(得分:5)

尝试:

emails = ["z@c.com", "a@c.com"]
salaries = [50, 60]
ids = [2, 1]

intermediate = zip(emails, salaries, ids)
intermediate.sort()

result = zip(*intermediate)

答案 1 :(得分:3)

这实际上是ebo的解决方案,使用sorted()而不是list.sort的用户进行单行,并在分配中使用多个左值来获取单个列表(命名为原始但具有{{1直接。

s_

答案 2 :(得分:0)

假设每个电子邮件ID都是唯一的,那么这将有效:

sortedEmails = emails[:]
sortedEmails.sort()

sortedSalaries = []
for email in sortedEmails:
    i = emails.index(email)
    sortedSalaries.append(salaries[i])

希望有所帮助