按照数组 1 的值在数组 2 中的显示顺序打印阵列 1 的最简单方法?



我不确定如何对数组进行编码,使其值按照相同的字符串值在另一个数组中出现的顺序重新排序。

例如:

Array1=[a,b,c]  
Array2 = [j,c,f,a,b,h]  
PrintedOutput=" c,a,b"

假设Array1中的每个元素都保证出现在Array2中,则可以使用

>>> sorted(Array1, key=Array2.index)
['c', 'a', 'b']

另一种更有效的(如果你把你的第一个列表作为一个集合(,方法是使用列表推导

>>> a1 = ['a', 'b', 'c']
>>> a2 = ['j', 'c', 'f', 'a', 'b', 'h']
>>> [x for x in a2 if x in a1]
['c', 'a', 'b']

特别是,正如另一个答案所指出的,这依赖于第一个数组中的所有元素都出现在第二个数组中的事实。 如果第一个数组中的任何元素没有出现在第二个数组中,它们将在我的答案中被省略,并在另一个答案中抛出错误。

最新更新