我在python中有两个列表。
a=[1,4,5]
b=[4,1,5]
我需要的是按照a订购b。有没有任何方法可以做到这一点,没有任何方法 环
答案 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)
如果您想让list2
与list1
相同,则无需乱搞订单或重新安排任何内容,只需将list2
替换为{{1}的副本}}:
list1
list()
接受任何迭代并从中生成一个新列表,因此我们可以使用它来复制list2 = list(list1)
,从而创建两个完全相同的列表。
也可以只执行list1
,但要注意这会导致任何一个更改影响另一个(因为它们指向同一个对象),所以这可能不是你想要的
如果list2 = list1
在其他地方被引用,因此需要保持相同的对象,则可以使用list2
替换列表中的每个值。
一般来说,您可能想要第一个解决方案。
答案 3 :(得分:0)
根据项目排序b'索引在a中,所有项目都不在最后。
-keepclasseswithmembernames