Python - 根据字符串中指定的重复字符查找单词

时间:2011-10-30 13:39:26

标签: python string character

假设我有一个单词列表: 辞职 树脂 redyed 抗 reeded

我也有一个字符串“.10.10”

我需要遍历列表,找到字符串中有数字的相同位置有重复字符的单词。

例如,字符串“.10.10”会找到“redyed”这个词,因为有1个是e,而d是0。

另一个字符串“.00.0。”会找到“reeded”这个词,因为那个位置有e。

到目前为止,我在python中的尝试并不值得打印。目前我查看字符串,将所有0添加到数组,将1添加到数组,然后尝试在数组位置中查找重复的字符。但它非常笨拙并且无法正常工作。

1 个答案:

答案 0 :(得分:5)

def matches(s, pattern):
    d = {}
    return all(cp == "." or d.setdefault(cp, cs) == cs
               for cs, cp in zip(s, pattern))

a = ["resign", "resins", "redyed", "resist", "reeded"]
print [s for s in a if matches(s, ".01.01")]
print [s for s in a if matches(s, ".00.0.")]

打印

['redyed']
['reeded']