【发布时间】:2016-12-13 16:56:07
【问题描述】:
我必须使用 Python 从字符串列表中删除短语字典
字符串 L1 的列表。示例:L1 = ['Programmer New York', 'Programmer San Francisco']
短语 L2 的字典(它们都不止一个单词)。示例:L2={'New York', 'San Francisco'}
预期的输出是,对于 L1 中的每个字符串,删除 L2 中存在的子字符串。所以输出将是res=['Programmer', 'Programmer']。
def foo(L1, L2):
res = []
print len(L1)
for i in L1:
for j in L2:
if j in i:
i = i.replace(j, "")
res.append(i)
return res
我当前的程序是一个蛮力双 for 循环。但是有可能提高性能吗?尤其是当 L1 尺寸非常大时。
【问题讨论】:
-
如果您的代码有效并且您想要审查/优化,我将投票关闭这个问题作为题外话,它属于 codereview.stackexchange.com
-
@Two-BitAlchemist 这看起来像示例代码,因此与代码审查无关。不过,真正的工作代码在那里会很好。
-
@xuanyue 我不知道你为什么认为这“只是我的意见”(或者为什么你不认为你所说的只是你的),但这里有一个非常相关的元数据问题:meta.stackoverflow.com/questions/277565/… --> 高度评价的评论立即指向 CR。并且来自链接的欺骗答案(强调我的):“CodeReview:您的代码有效,但您很想听听它如何更好地工作”
-
另外,我现在不打算追查 Meta 链接,但随着网站的发展,规则多年来发生了变化,因此引用(或暗示存在)与您类似的高度赞成的问题未关闭的则显示审核失败,未显示规则与实际不同。
-
@Two-BitAlchemist 不过,您指出 Code Review 存在一个主要问题。函数名称为
foo。我怀疑这是一个 MCVE,它们是 off-topic at Code Review。如果提供了实际代码,它可以工作。
标签: python