集合 set { }
元组 tuple ( )
列表 list[ ]
一元组:(tuple) 区分与list
特点:
1 有序的集合
2 通过偏移来取数据可以切分
3 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。只能通过转换(如list)来进行修改数据。
那为什么有列表还要有元组呢
元组不可变的好处。保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,
确保方法或者接口不会改变我们的数据从而导致程序问题。
def info(a):
'''一个我们不熟悉的方法'''
a[0] = 'haha'
a = [1,2,3]
info(a)
print a
二集合(包含元组):集合是没有顺序的概念。所以不能用切片和索引操作。 区别list 和tuple
1 创建集合。set():可变的 a=set('abc') {'a', 'b', 'c'}
不可变的frozenset():
2 添加操作: add, a.add('python') a= {'a', 'b', 'c', 'python'}
add()后面不可以跟一个集合 a.add(b)是不正确的
Update a.update('python') a= {'a', 'b', 'c', 'h', 'n', 'o', 'p', 't', 'y'} 相同字母只添加一遍
Update()后面可以跟一个集合 a.update(b)是正确的 这里设b={‘d’,’s’,’d’}
3 删除 remove a.remove(‘python’) 且删除的只能是已经有的元素且只能删除一个(有且只能有一个,因为集合是一个不可重复的集合)
4 成员关系 in,not in
6 交集&,并集|,差集- 且差集为a-b 指的是在集合a中出现但是在集合b中没有出现的元素这里以a为标准
7 set去重 列表内容元素重复
如果列表 为[1, 2, 3, 1, 3] 我们想把重复的数字去除 可以先把列表转换为集合 然后在转换成列表即可
B=set[a] list(B)
#encoding=utf-8
##可变集合(可以添加修改删除等操作)
info = set('abc')
info.add('python')##添加单个对象到集合里
print info
info.update('python')##把对象里的每个元素添加到集合里
print info
info.remove('python')
print info
##不可变集合(只能判断相等或者in与not in)
t = frozenset('haha')##不能进行添加,修改和删除的操作。
##成员操作 in,not in
print 'a' in info
print 'h' in t
print 'jay' not in info
##判断2个集合是否相等,之和元素本身有关,和顺序无关。
print set('abc') == set('cba')
##并集(|),交集(&),差集(-)
print set('abc') | set('cbdef')##并集
print set('abc') & set('cbdef')##交集
print set('abc') - set('cbdef')##差集
liststr = ['haha','gag','hehe','haha']
#for循环
m = []
for i in liststr:
if i not in m:
m.append(i)
print m
m = set(liststr)
print list(m)