假设我有两个列表:
list1 = [3, 2, 4, 1, 1]
list2 = ['three', 'two', 'four', 'one', 'one2']如果我运行list1.sort(),它会将它排序到[1,1,2,3,4],但是有没有办法让list2也同步(所以我可以说item 4属于'three')?因此,预期输出将是:
list1 = [1, 1, 2, 3, 4]
list2 = ['one', 'one2', 'two', 'three', 'four']我的问题是,我有一个非常复杂的程序,可以很好地处理列表,但我需要开始引用一些数据。我知道这对字典来说是一个完美的情况,但我正在努力避免在处理过程中使用字典,因为我确实需要对键值进行排序(如果我必须使用字典,我知道如何使用它们)。
基本上,这个程序的本质是,数据以随机的顺序出现(就像上面的),我需要对它进行排序,处理它,然后发送结果(顺序并不重要,但用户需要知道哪个结果属于哪个键)。我想过先把它放在字典里,然后再对列表进行排序,但如果不能保持顺序,我将无法区分具有相同值的条目(这可能会影响向用户传达结果)。因此,理想情况下,一旦我得到列表,我宁愿找出一种方法将这两个列表排序在一起。这个是可能的吗?
发布于 2019-01-14 06:17:12
算法解决方案:
list1 = [3,2,4,1, 1]
list2 = ['three', 'two', 'four', 'one', 'one2']
lis = [(list1[i], list2[i]) for i in range(len(list1))]
list1.sort()
list2 = [x[1] for i in range(len(list1)) for x in lis if x[0] == i]输出: -> 输出速度: 0.2s
>>>list1
>>>[1, 1, 2, 3, 4]
>>>list2
>>>['one', 'one2', 'two', 'three', 'four']https://stackoverflow.com/questions/9764298
复制相似问题