1.集合Set
strs=set(['jetf','wong','cnblogs'])
nums=set(rang(10)),集合就是由序列构建的。
特点:
(1)副本是被忽略的,(重复的的数据被忽略)
set1=set([0,1,2,3,1,0,2,5])
print set1
set2=set([0,1,2,3,4,5])
print set2
运行输出:
set([0, 1, 2, 3, 5])
set([0, 1, 2, 3, 4, 5])
(2)集合元素的顺序是随意的
strs=set(['jetf','wong','cnblogs'])
print strs
运行输出:
set(['wong', 'jetf', 'cnblogs'])
2.集合常用方法
(1)并集union 或者 |
set1=set([1,2,3])
set2=set([2,3,4])
set3=set1.union(set2)
print set3
运行输出:
set([1, 2, 3,4])
set1=set([1,2,3])
set2=set([2,3,4])
set3=set1|set2
print set3
运行输出:
set([1, 2, 3, 4])
(2)还包括&交集,<=,>=,-,copy()等
&交集:
set1 = set([1, 2, 3])
set2 = set([2, 3, 4])
set3 = set1&set2
print set3
运行输出:
set([2, 3])
issubset是否子集
set1 = set([1, 2, 3])
set2 = set([2, 3, 4])
set3 = set1&set2
print set3.issubset(set1)
运行输出:
True
copy() is 判断是否
set1 = set([1, 2, 3]) set1 = set([1, 2, 3])
set2 = set([2, 3, 4]) set2 = set([2, 3, 4])
set4 = set1.copy() set4 = set1.copy()
print set4 print set4 is set1
运行输出:
set([1, 2, 3]) False
add 添加 remove 移除 print 29 in set1 查找29是否在set1里
set1 = set([1]) set1 = set([1,2])
print set1 print set1
set1.add(2) set1.remove(2)
print set1 print set2
运行输出:
set([1]) set([1, 2])
set([1, 2]) set([1])
print 29 in set1 查找29是否在set1里
True/False
(3)frozenset
集合是可变的,所以不能用做字典的键。集合本身只能包含不可变量,所以也就不能包含其他集合
set1=set([1])
set2=set([2])
set1.add(set2)
运行会报错
可以使用frozenset类型用于代表不可变(可散列)的集合
set1=set([1])
set2=set([2])
set1.add(frozenset(set2))
print set1
运行输出:
set([1, frozenset([2])])
2.元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
(1)创建:在括号中添加元素,使用逗号隔开即可。
tup1 = ('pyghfsd'.'chemistry',1997,2000);
tup2 = (1,2,3,4)
tup3 = "s","d","g","c";
创建空元组 创建1个元素
tup1 = (); tup1 = (50,);
(2)访问
tup1 = ('pyghfsd','chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7);
print "tup1[0]:",tup1[0]
print "tup2[1:5]:",tup2[1:5]
运行输出:
tup1[0]: pyghfsd
tup2[1:5]: (2, 3, 4, 5)
(3)修改,直接修改元组元素值是不对的,但我们可以对元组进行连接组合:
tup1=(12,345)
tup2=('adc','sds')
tup3=tup1+tup2
print tup3
运行输出:
(12, 345, 'adc', 'sds')
(4)删除,元组中的元素值是不允许删除的,但我们可以用del语句来删除整个元组。
tup=('sdfsdf','yuazu','hahah')
print tup
del tup
print "After deleting tup"
print tup
运行输出:
('sdfsdf', 'yuazu', 'hahah')
Traceback (most recent call last):
After deleting tup
后报错
(5)常用表达式 结果 描述
len((1,2,3)) 3 计算元素的个数
(1,2,3)+(4,5,6) (1,2,3,4,5,6) 连接
('Hi!',)*4 ('Hi!','Hi!','Hi!','Hi!',) 复制
3 in (1,2,3) True 元素是否存在
for x in (1,2,3): print x, 1 2 3 迭代
(6)索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定元素,也可以截取一段元素
L = ('spam','Spam','SPAM')
python表达式 结果 描述
L[2] 'SPAM' 读取第三个元素
L[-2] 'Spam' 读取倒数第二个元素
L[1:] 'spam','Spam' 截取元素(从1到最后)
(7)无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下:
print 'abc', -4.24e93, 18+6.6j, 'xyz'
x, y = 1, 3
print "Value of x,y : ", x, y
运行输出:
abc -4.24e+93 (18+6.6j) xyz
Value of x,y : 1 3