链接两个列表 python
linking two lists python
我怎样才能 link 这两个列表,所以当一个列表改变时(顺序)
另一个列表保持相同的数字
List2=[5,4,3,2,1]
List3=[2,4,6,8,10]
更改 list2 的顺序和预期输出
List2=[1,2,3,4,5]
List3=[10,8,6,4,2]
但是list2的顺序每次都会变但是总是需要改回1-5
(Python 3.6)
定义一个小辅助函数,根据其中之一对两个列表进行排序。
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)
List2=[5,4,3,2,1]
List3=[2,4,6,8,10]
"easier" 方法是制作 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
Returns:
[10, 8, 6, 4, 2]
我怎样才能 link 这两个列表,所以当一个列表改变时(顺序) 另一个列表保持相同的数字
List2=[5,4,3,2,1]
List3=[2,4,6,8,10]
更改 list2 的顺序和预期输出
List2=[1,2,3,4,5]
List3=[10,8,6,4,2]
但是list2的顺序每次都会变但是总是需要改回1-5
(Python 3.6)
定义一个小辅助函数,根据其中之一对两个列表进行排序。
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)
List2=[5,4,3,2,1]
List3=[2,4,6,8,10]
"easier" 方法是制作 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
Returns:
[10, 8, 6, 4, 2]