·
set在python里是什么意思?
set是一组数,无序,内容又不能重复,通过调用set()方法创建:
1
|
>>> s = set([
'A'
,
'B'
,
'C'
])
|
对于访问一个set的意义就仅仅在于查看某个元素是否在这个集合里面,注意大小写敏感:
1
|
>>>
print
'A'
in sTrue>>>
print
'D'
in sFalse
|
也通过for来遍历:
1
|
s = set([(
'Adam'
, 95), (
'Lisa'
, 85), (
'Bart'
, 59)])
for
x in s:
print
x[0],
':'
,x[1]>>>Lisa : 85Adam : 95Bart : 59
|
通过add和remove来添加、删除元素(保持不重复),添加元素时,用set的add()方法
1
|
>>> s = set([1, 2, 3])>>> s.add(4)>>>
print
sset([1, 2, 3, 4])
|
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
1
|
>>> s = set([1, 2, 3])>>> s.add(3)>>>
print
sset([1, 2, 3])
|
删除set中的元素时,用set的remove()方法:
1
|
>>> s = set([1, 2, 3, 4])>>> s.remove(4)>>>
print
sset([1, 2, 3])
|
如果删除的元素不存在set中,remove()会报错:
1
|
>>> s = set([1, 2, 3])>>> s.remove(4)Traceback (most recent call last): File
"<stdin>"
, line 1, in <module>KeyError: 4
|
所以如果我们要判断一个元素是否在一些不同的条件内符合,用set是最好的选择,下面例子:
1
|
months = set([
'Jan'
,
'Feb'
,
'Mar'
,
'Apr'
,
'May'
,
'Jun'
,
'Jul'
,
'Aug'
,
'Sep'
,
'Oct'
,
'Nov'
,
'Dec'
,])x1 =
'Feb'
x2 =
'Sun'
if
x1 in months:
print
'x1: ok'
else
:
print
'x1: error'
if
x2 in months:
print
'x2: ok'
else
:
print
'x2: error'
>>>x1: okx2: error
|
另外,set的计算效率比list高.