discard python_python集合操作

1494438-20190425104751874-561543815.png

一:python官方文档

https://docs.python.org/3.6/library/stdtypes.html#set-types-set-frozenset

二:集合概念

集合是无序的

集合是无重复元素的

1494438-20190425105129076-1834915698.png

一:add()

会改变原有集合

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set('HackerRank')2 >>> s.add('H')3 >>>print s4 set(['a', 'c', 'e', 'H', 'k', 'n', 'r', 'R'])5 >>> print s.add('HackerRank')#添加后返回none6 None7 >>>print s8 set(['a', 'c', 'e', 'HackerRank', 'H', 'k', 'n', 'r', 'R'])

set.add()

二:pop(),discard(),remove()

pop()是随机删除元素

discard(),remove()是删除指定元素的

discard()在删除不存在元素是不会报错,而remvoe()会报keyerror错误

都会改变原有集合

set.pop()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set([1])2 >>>print s.pop()3 1

4 >>>print s5 set([])6 >>>print s.pop()7 KeyError: pop from an empty set

set.pop()

set.remove()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set([1, 2, 3, 4, 5, 6, 7, 8, 9])2 >>> s.remove(5)3 >>>print s4 set([1, 2, 3, 4, 6, 7, 8, 9])5 >>> print s.remove(4)#默认返回None6 None7 >>>print s8 set([1, 2, 3, 6, 7, 8, 9])9 >>> s.remove(0)10 KeyError: 0

set.remove()

set.discard()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set([1, 2, 3, 4, 5, 6, 7, 8, 9])2 >>> s.discard(5)3 >>>print s4 set([1, 2, 3, 4, 6, 7, 8, 9])5 >>> print s.discard(4)6 None7 >>>print s8 set([1, 2, 3, 6, 7, 8, 9])9 >>> s.discard(0)10 >>>print s11 set([1, 2, 3, 6, 7, 8, 9])

set.discard()

三:intersetcion(),difference(),unoin(),symmetric_difference(),交集,差集,并集,对称差集

不改变原有集合

set.intersection()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set("Hacker")2 >>> print s.intersection("Rank")3 set(['a', 'k'])4

5

6 >>> print s.intersection(['R', 'a', 'n', 'k'])7 set(['a', 'k'])8

9 >>> print s.intersection(enumerate(['R', 'a', 'n', 'k']))10 set([])11

12 >>> print s.intersection({"Rank":1})13 set([])14

15 >>> s & set("Rank")16 set(['a', 'k'])

set.intersection()

set.difference()

ContractedBlock.gif

ExpandedBlockStart.gif

1 #set1有的而set2没有的元素2 >>> s = set("Hacker")3 >>> print s.difference("Rank")4 set(['c', 'r', 'e', 'H'])5

6 >>> print s.difference(set(['R', 'a', 'n', 'k']))7 set(['c', 'r', 'e', 'H'])8

9 >>> print s.difference(['R', 'a', 'n', 'k'])10 set(['c', 'r', 'e', 'H'])11

12 >>> print s.difference(enumerate(['R', 'a', 'n', 'k']))13 set(['a', 'c', 'r', 'e', 'H', 'k'])14

15 >>> print s.difference({"Rank":1})16 set(['a', 'c', 'e', 'H', 'k', 'r'])17

18 >>> s - set("Rank")19 set(['H', 'c', 'r', 'e'])

set.difference()

set.unoin()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set("Hacker")2 >>> print s.union("Rank")3 set(['a', 'R', 'c', 'r', 'e', 'H', 'k', 'n'])4

5 >>> print s.union(set(['R', 'a', 'n', 'k']))6 set(['a', 'R', 'c', 'r', 'e', 'H', 'k', 'n'])7

8 >>> print s.union(['R', 'a', 'n', 'k'])9 set(['a', 'R', 'c', 'r', 'e', 'H', 'k', 'n'])10

11 >>> print s.union(enumerate(['R', 'a', 'n', 'k']))12 set(['a', 'c', 'r', 'e', (1, 'a'), (2, 'n'), 'H', 'k', (3, 'k'), (0, 'R')])13

14 >>> print s.union({"Rank":1})15 set(['a', 'c', 'r', 'e', 'H', 'k', 'Rank'])16

17 >>> s | set("Rank")18 set(['a', 'R', 'c', 'r', 'e', 'H', 'k', 'n'])

set.union()

set.symmetric_difference()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> s = set("Hacker")2 >>> print s.symmetric_difference("Rank")3 set(['c', 'e', 'H', 'n', 'R', 'r'])4

5 >>> print s.symmetric_difference(set(['R', 'a', 'n', 'k']))6 set(['c', 'e', 'H', 'n', 'R', 'r'])7

8 >>> print s.symmetric_difference(['R', 'a', 'n', 'k'])9 set(['c', 'e', 'H', 'n', 'R', 'r'])10

11 >>> print s.symmetric_difference(enumerate(['R', 'a', 'n', 'k']))12 set(['a', 'c', 'e', 'H', (0, 'R'), 'r', (2, 'n'), 'k', (1, 'a'), (3, 'k')])13

14 >>> print s.symmetric_difference({"Rank":1})15 set(['a', 'c', 'e', 'H', 'k', 'Rank', 'r'])16

17 >>> s ^ set("Rank")18 set(['c', 'e', 'H', 'n', 'R', 'r'])

set.symmertic_difference

四:update(),difference_update(),set.symmetric_difference_update()

set.update(set2):以集合2还更新集合1,加入到集合1中

ContractedBlock.gif

ExpandedBlockStart.gif

1 >> myset.update([1, 2, 3, 4]) # update() only works foriterable objects2 >>myset3 {'a', 1, 'c', 'b', 4, 2, (5, 4), 3}4 >> myset.update({1, 7, 8})5 >>myset6 {'a', 1, 'c', 'b', 4, 7, 8, 2, (5, 4), 3}7 >> myset.update({1, 6}, [5, 13])8 >>myset9 {'a', 1, 'c', 'b', 4, 5, 6, 7, 8, 2, (5, 4), 13, 3}

set.update()

set.difference_update(set2):用set1-set2来更新set1,覆盖set1值

ContractedBlock.gif

ExpandedBlockStart.gif

1 #用A,B的差集来更新A2 >>> H = set("Hacker")3 >>> R = set("Rank")4 >>>H.difference_update(R)5 >>>print H6 set(['c', 'e', 'H', 'r'])

set.difference——update()

set.symmetric_difference_update(set2):用set1和set2的对称差集来更新set1,覆盖set1的值

ContractedBlock.gif

ExpandedBlockStart.gif

1 #用A,b互相差集来更新A2 >>> H = set("Hacker")3 >>> R = set("Rank")4 >>>H.symmetric_difference_update(R)5 >>>print H6 set(['c', 'e', 'H', 'n', 'r', 'R'])

set.systemeratic_update()

五:isdisjoint(), issubset(), issuperset()

set.isdisjoint():如果两个集合没有交集则返回True。

ContractedBlock.gif

ExpandedBlockStart.gif

1s1,s2={1,2,3},{4,5,6}23s1.isdisjoint(s2)4True

set.isdisjoint()

issubset():是否为子集

issubset(other)¶set <= otherTest whether every element in the set is in other.set < other:严格子集Test whether the set is a proper subset of other, that is, set <= other and set != other

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> set1={1,2,3,4,5}2 >>> set2={1,2,3,4,5,6}3 >>>set1.issubset(set2)4 True5 >>> set3={1,2,3,4,5,6}6 >>>set3.issubset(set2)7 True8 >>> set3>> set1

View Code

issuperset(other)¶set >= otherTest whether every element in other is in the set.set > other:严格父集Test whether the set is a proper superset of other, that is, set >= other and set != other.

a = set(input().split())

print(all(a > set(input().split()) for _ in range(int(input()))))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值