在列表理解python中操作var

时间:2018-04-19 05:23:46

标签: python list-comprehension

我想比较两个具有以下属性的字符串:

s1 = abc...q
s2 = absc...q

第二个字符串有一些额外的字符而不是第一个字符串,但是包含相同顺序的第一个字符。我想得到这些 s 字符的位置但不是简单的循环,因为它太慢了,所以我想用列表理解对它进行建模,如下所示:

diffs = [pos_2 for (pos_s1, pos_s2) in zip(range(len(s1), range(len(s2)))) 
if s1[pos_1] is not s2[pos_2] 
*and then do this operation* pos_1 -= 1]

但似乎我不能在列表理解中做这样的操作。有任何建议如何处理?

1 个答案:

答案 0 :(得分:3)

您可以像这样执行列表理解

s1 = "abc...q"
s2 = "absc...q"

[index for index, elm in enumerate(s2) if elm not in s1]