按数组1的值在数组2中出现的顺序打印数组1的最简单方法是什么?

2024-10-03 11:14:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如:

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

Tags: 字符串编码排序顺序数组array1array2printedoutput
2条回答

假设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']

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

相关问题 更多 >