所以我有一个有趣的问题。
我正在尝试写一些乱七八糟的单词,我需要知道我用过哪些字母,哪些没用过。到目前为止,我有以下代码:
def remove_common(x,y):
sort = sort = lambda x: "".join(c for c in sorted(x.lower()) if c.isalpha())
x,y = sort(x), sort(y)
//some code that removes y from x
return leftovers
print remove_common("Lets chat about code","that cool cat")
print remove_common("A silly word","a lil sword")
print remove_common("The Thing","Height")
>>> "bdeesu"
>>> "iy"
>>> "tn"
我正在寻找一种简单的方法来删除两者中的字母,但在必要时保留重复项。
- 字符串转为小写,非字母被删除
- 重复很重要,所以如果
x = "aa"
和y = "a"
,那么结果是"a"
,不是""
。我认为这排除了使用集合。 - 如果一个字母在 y 中而不在 x 中,它应该大声说出来。
- 速度并不重要,但代码的优雅才是重要的。所以代码越好阅读越好——我知道这是一种主观的感觉。
- 输出顺序并不重要,因为我可以将其转换为字符串
sorted()
。
我查看了其他答案,但这些主要与仅给出未出现在一个中的字母并删除重复项有关。