您的位置:首页 > 编程语言 > Python开发

set() in python

2016-01-12 13:03 591 查看
1. set() remove the repeat elements

点击(此处)折叠或打开

>>> seq
= [1,2,3,1,2,3,'a','hello','a','world']

>>> seq_set
= set(seq)

>>> seq_set

set(['a', 1, 2, 3,
'world',
'hello']) #去除了重复对象

  

>>> string
= "hello world"

>>> string_set
= set(string)

>>> string_set

set([' ',
'e',
'd', 'h',
'l',
'o', 'r',
'w']) #sting也是Python中的一种序列

  

#set是一种集合,当然可以使用 in/not
in, len

>>>
'h' in string_set

True

>>>
'a' in string_set

False

>>> len(string_set)

8

  

#set的增删操作

  

# s.add(x)

# 向 set “s”中增加元素 x

  

# s.remove(x)

# 从 set “s”中删除元素 x, 如果不存在则引发
KeyError

  

# s.discard(x)

# 如果在 set “s”中存在元素 x, 则删除

  

# s.pop()

# 删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发
KeyError

  

# s.clear()

# 删除 set “s”中的所有元素

2.set集合操作

点击(此处)折叠或打开

#子集运算

>>> s
= set([1,2,3,4,5])

>>> t
= set([1,2,3])

>>> s.issubset(t) #s是否为t的子集,相当于s<=t

False

>>> t.issubset(s)    #t是否为s的子集,相当于s>=t

True

>>> s<=t

False

>>> t<=s

True

>>> s<t

False

>>> s>t

True

>>> s==t

False

>>> x
= set([1,2,3])

>>> x==t #两set是否相等

True

>>> set1
= set([1,2])

>>> set2
= set([2,3])

# 合集

# s.union(t)

# s | t

# 返回一个新的 set 包含 s 和 t 中的每一个元素

>>> set1.union(set2)

set([1, 2, 3])

>>> set1
| set2

set([1, 2, 3])

# 并集

# s.intersection(t)

# s & t

# 返回一个新的 set 包含 s 和 t 中的公共元素

>>> set1.intersection(set2)

set([2])

>>> set1
& set2

set([2])

# 差集

# s.difference(t)

# s - t

# 返回一个新的 set 包含 s 中有但是 t 中没有的元素

>>> set1.difference(set2)

set([1])

>>> set1
- set2

set([1])

# 叫什么集 我也不知道

# s.symmetric_difference(t)

# s ^ t

# 返回一个新的 set 包含 s 和 t 中不重复的元素

>>> set1.symmetric_difference(set2)

set([1, 3])

>>> set1
^ set2

set([1, 3])

# union(), intersection(), difference()
和 symmetric_difference()这种函数版本将会接受任何iterable对象作为参数。

# 相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。

>>> set1.union([3,4,5])

set([1, 2, 3, 4, 5])

>>> set1
| [3,4,5]

Traceback (most recent call last):

  File "", line 1,
in <module>

    set1 | [3,4,5]

TypeError: unsupported operand type(s)
for |:
'set' and
'list'

>>>

# 另外还有

# s.update(t)

# s |= t

# 返回增加了 set “t”中元素后的 set “s”

# s.intersection_update(t)

# s &= t

# 返回只保留含有 set “t”中元素的 set “s”

# s.difference_update(t)

# s -= t

# 返回删除了 set “t”中含有的元素后的 set “s”

# s.symmetric_difference_update(t)

# s ^= t

# 返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”

reference from: http://blog.csdn.net/sicofield/article/details/40083653
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux python ubuntu