set模块基本功能
- Set 最主要的功能就是寻找一个句子或者一个 list 当中不同的元素.
代码语言:javascript
复制char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd']
sentence = 'Welcome Back to This Tutorial'
print(set(char_list))
# {'b', 'd', 'a', 'c'}
print(set(sentence))
# {'l', 'm', 'a', 'c', 't', 'r', 's', ' ', 'o', 'W', 'T', 'B', 'i', 'e', 'u', 'h', 'k'}
print(set(char_list list(sentence)))
# {'l', 'm', 'a', 'c', 't', 'r', 's', ' ', 'd', 'o', 'W', 'T', 'B', 'i', 'e', 'k', 'h', 'u', 'b'}
- 值得注意的是,sentence是一个字符串,但是可不是将其作为单个单词进行分割,而是将其分割成了每一个字符。
添加元素
- 定义好一个 set 之后我们还可以对其添加需要的元素, 使用 add 就能添加某个元素. 但是不是每一个东西都能添加, 比如一个列表. 添加只能添加单个元素而不是列表这种复合对象
代码语言:javascript
复制unique_char = set(char_list)
unique_char.add('x')
# unique_char.add(['y', 'z']) this is wrong
print(unique_char)
# {'x', 'b', 'd', 'c', 'a'}
清除元素和清空set
- 清除一个元素可以用 remove 或者 discard, 而清除全部可以用 clear.
代码语言:javascript
复制unique_char.remove('x')
print(unique_char)
# {'b', 'd', 'c', 'a'}
unique_char.discard('d')
print(unique_char)
# {'b', 'c', 'a'}
unique_char.clear()
print(unique_char)
# set()
筛选操作
- a.difference(b) 返回a中有的但是b中没有的元素
- a.intersection(b) 返回a和b中都有的元素
代码语言:javascript
复制unique_char = set(char_list)
print(unique_char.difference({'a', 'e', 'i'}))
# {'b', 'd', 'c'}
print(unique_char.intersection({'a', 'e', 'i'}))
# {'a'}