我有两个包含不同长度字符串的列表。现在,我想检查一个列表中的字符串是否是另一个列表的子字符串,以创建一个与string_list相同长度的新列表。
string_list = ['expensive phone', 'big house', 'shiny key', 'wooden door']
substring_list = ['phone','door']
到目前为止我做了什么
newlist=[]
for i in string_list:
for j in substring_list:
if i in j:
newlist.append(j)
print newlist
所以它给了我
newlist = ['phone', 'door']
但是我想要实现的是以下列表
newlist = ['phone', '-', '-', 'door']
for
循环可能会占用一个else
块。在找不到字符串的情况下,可以使用此else
块来附加'-'
:
newlist=[]
for i in string_list:
for j in substring_list:
if j in i:
newlist.append(j)
break
else:
newlist.append('-')
print(newlist)
# ['phone', '-', '-', 'door']
如果您希望结果的长度与第一个列表的长度相同,则需要在中加入一个分隔符,if
以便如果两个项目都包含在一个字符串中(例如'expensive phone door'
),则不会进行两个附加操作,而这些附加操作将使结果列表长度。
这break
也可以确保在找到项目时不执行的else
块for
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句