python - 是否可以使用特定数字比较两个列表之间的列表?

我是一个正在学习用 python 编程的新学生,我有 2 个示例列表,它们是


selected_ipc = ['H01L']

df = [[ 'F24J3/02 ', 'A123'], [ 'G01N31/10 ', 'A124'], [ 'H01L27/14 ', 'A125'], ['G21H1/10 ', 'A126'], ['H01L21/36 ', 'A127']]

我创建了一个像这样的简单代码


for item in selected_ipc:

    for item1 in df:

        if item == item1:

            print (item)

        else:

            print("No match")

结果返回“不匹配”,而我的预期结果是


[[ 'H01L27/14 ', 'A125'], ['H01L21/36 ', 'A127']]

因此,我想问一下,是否可以将第一个列表与第二个列表中的前 4 位数字进行比较?


先感谢您


四季花海
浏览 162回答 3
3回答

红糖糍粑

您可以使用startswith:selected_ipc = ['H01L']df = ['F24J3/02 ', 'G01N31/10 ', 'H01L27/14 ', 'G21H1/10 ', 'H01L21/36 ']for item in selected_ipc:    for item1 in df:        if item1.startswith(item):            print(item1)        else:            print("No match")输出No matchNo matchH01L27/14 No matchH01L21/36 更新对于嵌套列表,您可以使用列表理解:selected_ipc = ['H01L']df = [['F24J3/02 ', 'A123'], ['G01N31/10 ', 'A124'], ['H01L27/14 ', 'A125'], ['G21H1/10 ', 'A126'],      ['H01L21/36 ', 'A127']]result = [lst for lst in df if any(lst[0].startswith(e) for e in selected_ipc)]print(result)输出[['H01L27/14 ', 'A125'], ['H01L21/36 ', 'A127']]作为替代方案,您可以使用带有两个循环的较少Pythonic 的方式:selected_ipc = ['H01L']df = [['F24J3/02 ', 'A123'], ['G01N31/10 ', 'A124'], ['H01L27/14 ', 'A125'], ['G21H1/10 ', 'A126'],      ['H01L21/36 ', 'A127']]result = []for lst in df:    found = False    for e in selected_ipc:        if lst[0].startswith(e):            found = True            result.append(lst)            break    if not found:        print("No match")print(result)输出No matchNo matchNo match[['H01L27/14 ', 'A125'], ['H01L21/36 ', 'A127']]

阿晨1998

你可以用下面的列表理解来做到这一点selected_ipc = ['H01L']df = ['F24J3/02 ', 'G01N31/10 ', 'H01L27/14 ', 'G21H1/10 ', 'H01L21/36 ']for item in selected_ipc:    match_lst = [item1 for item1 in df if item in item1]print(match_lst)更新如果要检查列表“df”中列表的其他元素(而不是第一个),则可以查看以下代码selected_ipc = ['H01L', 'G01N', 'A126']df = [['F24J3/02 ', 'A123'], ['G01N31/10 ', 'A124'], ['H01L27/14 ', 'A125'], ['G21H1/10 ', 'A126'],      ['H01L21/36 ', 'A127']]match_lst = [item1 for item1 in df if any(i.startswith(item) for item in selected_ipc for i in item1)]print(match_lst)输出[['G01N31/10 ', 'A124'], ['H01L27/14 ', 'A125'], ['G21H1/10 ', 'A126'], ['H01L21/36 ', 'A127']] 

慕妹3242003

selected_ipc = ['H01L']df = ['F24J3/02 ', 'G01N31/10 ', 'H01L27/14 ', 'G21H1/10 ', 'H01L21/36 ']l = []for i in df:   if selected_ipc[0] in i:       l.append(i)print l
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python