2017-10-16 153 views
0

如何链接这两个列表,所以当一个列表的变化(顺序) 其他名单跟随同一个号码,连接两个列表蟒蛇

List2=[5,4,3,2,1] 
List3=[2,4,6,8,10] 

改变列表2的顺序和预期产出保持

List2=[1,2,3,4,5] 
List3=[10,8,6,4,2] 

但需要改回1-5

的列表2顺序会改变,每次却总是(Python的3.6)

+0

这两个列表是相互独立的吗?更改一个列表应该对另一个列表没有影响。你如何改变'list2'的顺序? – davedwards

+0

嗨,他们是输入的,我知道我想以某种方式链接它们,如果可能的话? – GraphicsLab

+0

哦,我的错误,我误解了这个问题,谢谢你进一步解释。但也许已经提供的答案有帮助 – davedwards

回答

1

定义一个小帮助函数,根据其中的一个排序这两个列表。

def revert(a, b): 
    a, b = map(list, zip(*sorted(zip(a, b), key=lambda x: x[0]))) 
    return a, b 

现在,在需要时调用此函数。

List2, List3 = revert(List2, List3) 
+0

嗨,我只是测试这个谢谢你的快速答案给我几个米! – GraphicsLab

+0

omg COLDSPEED你一个传奇,非常感谢你如果开始不工作,似乎工作不好评论谢谢! – GraphicsLab

+0

喜应该是速战速决,但得到:JudgeList1,ScoreList1 =恢复(JudgeList1,ScoreList1) UnboundLocalError:局部变量“JudgeList1”分配 – GraphicsLab

0
List2=[5,4,3,2,1] 
List3=[2,4,6,8,10] 

的 “容易” 的方式将是使dict3的字典和使用后,你翻拍清单2.事情是这样的:

# Pair the lists 
List3 = dict(zip(List2,List3)) 

# Remake List2 
List2 = sorted(List2) 

# Remake List3 based on List2 
List3 = [List3[key] for key in List2] 

List3 

返回:

[10, 8, 6, 4, 2] 
+0

我不认为这是什么即时寻找对不起 – GraphicsLab

+0

@GraphicsLab可能是这样,但字典这些任务就变得琐碎。 –