我有一个父列表['Python', 'Java', 'c#', 'Csharp']
如果我的输入列表['c#', 'Java']
从输入列表中,我需要按照父列表中的顺序排列顺序。
预期输出为['Java', 'c#']
如果输入列表为空[],则输出列表['Python']
1多一个测试场景
输入>> ['Python', 'Java', 'Csharp', 'c#']输出>> ['Python', 'Java', 'c#', 'Csharp']
我是否需要创建一个订单字典并进行如下比较?
{'Python':1, 'Java':2, 'c#':3, 'Csharp':4}发布于 2021-01-29 06:35:38
您可以迭代父列表,并检查父列表中的每个元素是否也在input_list中。如果是,则应在父列表中打印元素。
您还需要检查input_list是否为空。如果为空,则需要打印Python。所以也要加上这个条件。
这是完成这个任务的代码。得到输出列表是一种列表理解。
parent_list = ['Python', 'Java', 'c#', 'Csharp']
def get_output(input_list):
if input_list:
return [x for x in parent_list if x in input_list]
else:
return ['Python']
print (get_output(['c#', 'Java']))
print (get_output([]))
print (get_output(['Python', 'Java', 'Csharp', 'c#']))这方面的产出如下:
['Java', 'c#']
['Python']
['Python', 'Java', 'c#', 'Csharp']发布于 2021-01-29 06:04:35
您只需遍历父列表,查看条目是否在输入列表中,并将其追加。还添加了关于空输入列表的特殊条件,如下所示:
output = []
if not input:
output.append('Python')
for item in parent:
if item in input:
output.append(item)
print(output)发布于 2021-01-29 05:59:47
您可以使用sorted和zip
key=lambda pair: pair[0]将根据Y (parent_list)中的顺序对输出列表中的值进行排序。
def func(X, Y):
op_list = [x for y, x in sorted(zip(Y,X), key=lambda pair: pair[0]) if x in Y]
if not X:
op_list = ['Python']
return op_list
print(func(input_list, parent_list))https://stackoverflow.com/questions/65949424
复制相似问题