3 回答
TA贡献1815条经验 获得超6个赞
您可以使用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 match
No match
H01L27/14
No match
H01L21/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 match
No match
No match
[['H01L27/14 ', 'A125'], ['H01L21/36 ', 'A127']]
TA贡献2037条经验 获得超6个赞
你可以用下面的列表理解来做到这一点
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']]
TA贡献1824条经验 获得超6个赞
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
添加回答
举报