在python 2.7中创建两个相同的列表

时间:2013-03-28 10:32:36

标签: python-2.7

我在python中有两个列表。

a=[1,4,5]
b=[4,1,5]

我需要的是按照a订购b。有没有任何方法可以做到这一点,没有任何方法 环

4 个答案:

答案 0 :(得分:2)

最简单的方法是使用zip将两个列表的元素合并到tuple中:

a, b = zip(*sorted(zip(a, b)))

sorted将首先将tuple与第一个元素(a中的元素)进行比较; zip(*...)将“解压缩”已排序的列表。

答案 1 :(得分:2)

或者可能只是检查一切是否完美然后..复制列表a为b

if all(x in b for x in a) and len(a)==len(b):
    b=a[:]

答案 2 :(得分:0)

如果您想让list2list1相同,则无需乱搞订单或重新安排任何内容,只需将list2替换为{{1}的副本}}:

list1

list()接受任何迭代并从中生成一个新列表,因此我们可以使用它来复制list2 = list(list1) ,从而创建两个完全相同的列表。

也可以只执行list1,但要注意这会导致任何一个更改影响另一个(因为它们指向同一个对象),所以这可能不是你想要的

如果list2 = list1在其他地方被引用,因此需要保持相同的对象,则可以使用list2替换列表中的每个值。

一般来说,您可能想要第一个解决方案。

答案 3 :(得分:0)

根据项目排序b'索引在a中,所有项目都不在最后。

-keepclasseswithmembernames