【发布时间】:2021-04-11 16:48:54
【问题描述】:
我在下面的列表中有一个列表为“list_all”,我正在寻找一个如下所示的单词“c”。第二个列表中没有“c”。下面的代码给出的结果为 ['c', 'c'] 但我希望 ['c', '', 'c'] 具有相同的长度 'list_all'。你能帮我解决一下如何将空元素放入结果中。
import re
list_all = [['a','b','c','d'],['a','b','d'],['a','b','c','d','e']]
listofresult =[]
for h in [*range(len(list_all))]:
for item in list_all[h]:
patern = r"(c)"
if re.search(patern, item):
listofresult.append(item)
else:
None
print(listofresult)
【问题讨论】:
-
你为什么使用正则表达式?您只需要
['c' if 'c' in x else '' for x in list_all],请参阅demo。 -
因为在普通代码中它像 '' a bla bla '' , 'b bla bla' 。句子开头相同,但继续不同,您有什么建议吗?
-
如果你能提供更多真实的样本,那将会很有帮助。也许您想要ideone.com/IJ1aHl 之类的东西?
-
我正在废弃产品规格,其中一些具有型号代码,而另一些则没有。并且代码彼此不相似,唯一的共同点是开始'模型代码'。所以列表看起来像 ''list_all = [['a blabla','b bla','c bla','d12'],['a bl','b bl','d bl'],[' a blsl','b bls','c bla','d bla ','e blas']] ''' 这就是我必须使用正则表达式的原因。
-
好吧,无论如何,看看你的代码:
if re.search(patern, item): listofresult.append(item) else: None。您只需在不匹配时发出 None 。您需要在else分支中使用listofresult.append('')。