【发布时间】:2012-04-03 14:12:08
【问题描述】:
假设我有两个列表:
list1 = [3, 2, 4, 1, 1]
list2 = ['three', 'two', 'four', 'one', 'one2']
如果我运行list1.sort(),它会将其排序为[1,1,2,3,4],但有没有办法让list2 也同步(所以我可以说项目4 属于'three')?因此,预期的输出将是:
list1 = [1, 1, 2, 3, 4]
list2 = ['one', 'one2', 'two', 'three', 'four']
我的问题是我有一个非常复杂的程序,它可以很好地处理列表,但我有点需要开始引用一些数据。我知道这对于字典来说是一个完美的情况,但我试图在处理过程中避免使用字典,因为我确实需要对键值进行排序(如果我必须使用字典,我知道如何使用它们)。
基本上这个程序的本质是,数据以随机顺序出现(如上),我需要对其进行排序,处理然后发送结果(顺序无关紧要,但用户需要知道哪个结果属于哪个键)。我考虑过先将其放入字典中,然后对列表进行排序,但如果不维护顺序,我将无法区分具有相同值的项目(在将结果传达给用户时可能会产生影响)。所以理想情况下,一旦我得到列表,我宁愿想办法将两个列表排序在一起。这可能吗?
【问题讨论】:
-
我应该指出,您在 list2 中的变量并不指向 list1 中的整数。例如。如果更改诸如 list1[0]=9 之类的值并查看 list2,则 list2[0] 仍将为 3。在 python 中使用整数时,它不使用引用/指针,它会复制该值。你最好去 list2 = list1[:]