嗯,你可以使用len(word) 来获取单词的长度,对吧?
另外,set 是唯一值的容器。也就是说,你不能在一个集合中多次拥有相同的值。
您还可以将字符串传递到集合中,以使用字符串中的唯一字符填充集合。
最后,您可以通过len(set) 获取集合中唯一项目的数量。
所以,如果你把它们加在一起:
>>> word = “CATT”
>>> len(word)
4
>>> my_set = set(word)
>>> my_set # Sets aren’t ordered, so it will probably come back in a different order
{‘T’, ‘A’, ‘C’}
>>> len(my_set)
3
嗯,3 != 4,对吧?看起来在获取“CATT”中的唯一值时,您必须丢弃其中一个,因为它是重复的。嘿,方便!所以简短的版本是:
word = “CATT”
if len(word) != len(set(word)):
print(word, “has duplicate letters”)
哦,因为这可能会回答您的下一个问题:
如果您有两个集合 A 和 B,当且仅当 A 中的每个项目也在 B 中时,A <= B 为 True。例如:
>>> {1,2,3} <= {1,2,3,4}
True
>>> {1,2,3,4} <= {1,2,3}
False
嗯,这很方便,因为当且仅当单词中的每个字母也在字母列表中时,您可以用字母列表拼写单词,对吗?这看起来很像A <= B 的定义!事实上,它是:
>>> letters = [‘a’, ‘b’, ‘c’, ‘t’]
>>> set('cat') <= set(letters)
True
>>> set('dog') <= set(letters)
False
方便,不是吗?