需要从两个列表中获取匹配和不匹配结果

2024-06-26 00:13:24 发布

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

list1 = ['ram', 'krishna', 'venkat','naran', 'vishnu']
list2 = ['ram', 'siva', 'venkat','sankar']


res = []
for li in list1:
    if li in list2:
        res.append((li, 'success'))
    else:
        res.append((li,'fail'))
print(res)

Result: [('ram', 'success'), ('krishna', 'fail'), ('venkat', 'success'), ('naran', 'fail'), ('Vishnu', 'fail')]

我需要匹配列表,列表1是固定的,需要匹配 list2与list1,需要以下结果与成功/失败。请帮帮我

ram      ram        Success
krishna  siva       Fail
venkat   venkat     Success
naran    sankar     Fail
vishnu              Not available

Tags: inresliramsuccessfailappendlist2
1条回答
网友
1楼 · 发布于 2024-06-26 00:13:24

您可以使用itertools.izip_longest

import itertools
list1 = ['ram', 'krishna', 'venkat','naran', 'vishnu']
list2 = ['ram', 'siva', 'venkat','sankar']
final_data = '\n'.join(["{}   {}   {}".format(a, b, ['Fail', 'Success'][a == b]) if None not in (a, b) else "{}    Not available".format(filter(None, (a, b))[0]) for a, b in itertools.izip_longest(list1, list2)])

输出:

ram   ram   Success
krishna   siva   Fail
venkat   venkat   Success
naran   sankar   Fail
vishnu    Not available

相关问题 更多 >