Python基础——set函数

1.set基本用法

Set 最主要的功能就是寻找一个句子或者一个 list 当中不同的元素.

list_ = ['t','h','i','s','i','s','a','l','i','s','t']
print(set(list_))

sentence = 'Today is a sunny day!'
print(set(sentence))
print(list(sentence))     #用list将句子变成list_一样的格式,此时还没有去重

print(set(list_ + list(sentence)))    #两个list合并后再去重

#输出
{'h', 'l', 't', 'i', 's', 'a'}
{'n', 'd', 'i', 'y', 'o', 'u', 's', '!', 'a', 'T', ' '}
['T', 'o', 'd', 'a', 'y', ' ', 'i', 's', ' ', 'a', ' ', 's', 'u', 'n', 'n', 'y', ' ', 'd', 'a', 'y', '!']
{'h', 'n', 'l', 'd', 't', 'i', 'y', 'o', 'u', 's', '!', 'a', 'T', ' '}

2.向set后的列表添加元素

定义好一个 set 之后我们还可以对其添加需要的元素, 使用 add 就能添加某个元素. 但是不是每一个东西都能添加, 比如一个列表.

list_ = ['t','h','i','s','i','s','a','l','i','s','t']
char_set = set(list_)

char_set.add('w')   #注意:只能增加一个,增加一个列表则会报错
print(char_set)

#输出
{'h', 'l', 't', 'i', 'w', 's', 'a'}

3.删除元素

清除一个元素可以用 remove 或者 discard, 而清除全部可以用 clear.

3.1.remove()

char_set.remove('s')
print(char_set)

#输出
{'i', 't', 'w', 'a', 'h', 'l'}

3.2.discard()

char_set.discard('h')
print(char_set)

#输出
{'i', 't', 'w', 'a', 'l'}

3.3.clear()

char_set.clear()
print(char_set)

#输出
set()      #表示为空

4.比较两个集合

4.1.difference()

我们还能进行一些筛选操作, 比如对比另一个东西, 看看原来的 set 里有没有和他不同的 (difference).

list_ = ['t','h','i','s','i','s','a','l','i','s','t']
set_1 = set(list_)
set_2 = {'h','e','l','l','o'}

print(set_1)
print(set_2)
print('\n')
print("difference:",set_1.difference(set_2))  #打印set_1中有而set_2中没有的

#输出
{'i', 't', 'a', 'h', 's', 'l'}
{'h', 'o', 'l', 'e'}


difference: {'i', 's', 't', 'a'}

4.2.intersection()

对比另一个东西, 看看 set 里有没有相同的 (intersection).

list_ = ['t','h','i','s','i','s','a','l','i','s','t']
set_1 = set(list_)
set_2 = {'h','e','l','l','o'}

print(set_1)
print(set_2)
print('\n')
print("intersection:",set_1.intersection(set_2))    #打印set_1与set_2相同的部分

#输出
{'i', 't', 'a', 'h', 's', 'l'}
{'h', 'o', 'l', 'e'}


intersection: {'h', 'l'}
  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值