Python数据类型 -- 元组合集合
2014-12-24 15:43
435 查看
一 元组:
特点:
1 有序的集合
2 通过偏移来取数据
3 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
4、元组可以当做字典的键,列表不行
如果要修改元组对象,先转换成列表,在修改,在转换成元组。
tuple类型转换
那为什么有列表还要有元组呢
元组不可变的好处。保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,
确保方法或者接口不会改变我们的数据从而导致程序问题。
def info(a):
'''一个我们不熟悉的方法'''
a[0] = 'haha'
a = [1,2,3]
info(a) #调用a列表当做参数,在方法中改变列表a的元素,在函数外面a也是被改变的。
print a # ['haha',2,3]
如果把a当做元组传进去,就不出现这个问题,不过会报错,因为元组是不可变元素。
另一种方法:
def info(a):
'''一个我们不熟悉的方法'''
b = a[:] #这样复制列表是不会改变的。
b[0] = 'haha'
return b
a = [1,2,3]
info(a)
print a # [1,2,3]
二 集合:集合是没有顺序的概念。所以不能用切片和索引操作。
1 创建集合。set():可变的 ,不可变的frozenset():
接受的参数是可迭代对象,
区别可迭代对象方法:dir() 如果里面有__iter__就是可迭代对象
2 添加操作: add,update
3 删除 remove
4 成员关系 in,not in
6 交集,并集,差集 & | -
7 set去重 列表内容元素重复
##可变集合
#作为整体插入
a = set('abc')
a.add('dee')
print a #set(['a', 'c', 'b', 'dee'])
#打散进行插入
a.update('python')
print a #set(['a', 'c', 'b', 'h', 'o', 'n', 'p', 't', 'y', 'dee'])
#删除指定的元素。
a.remove('dee')
print a #set(['a', 'c', 'b', 'h', 'o', 'n', 'p', 't', 'y'])
#成员关系,in ,not in
print 'a' in a #True
##并集,交集,差集
a = set('abce')
b = set('de')
print a & b #两个集合的交集 'e'
print a | b #两个集合的并集
print a - b #两个列表的差集
a = [1,2,3,1,2]
print a
print set(a) # 去掉重复的元素
#不可变集合
t = frozenset('haha')##不能进行添加,修改和删除的操作。
##判断2个集合是否相等,之和元素本身有关,和顺序无关。
print set('abc') == set('cba') #true
特点:
1 有序的集合
2 通过偏移来取数据
3 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
4、元组可以当做字典的键,列表不行
如果要修改元组对象,先转换成列表,在修改,在转换成元组。
tuple类型转换
那为什么有列表还要有元组呢
元组不可变的好处。保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,
确保方法或者接口不会改变我们的数据从而导致程序问题。
def info(a):
'''一个我们不熟悉的方法'''
a[0] = 'haha'
a = [1,2,3]
info(a) #调用a列表当做参数,在方法中改变列表a的元素,在函数外面a也是被改变的。
print a # ['haha',2,3]
如果把a当做元组传进去,就不出现这个问题,不过会报错,因为元组是不可变元素。
另一种方法:
def info(a):
'''一个我们不熟悉的方法'''
b = a[:] #这样复制列表是不会改变的。
b[0] = 'haha'
return b
a = [1,2,3]
info(a)
print a # [1,2,3]
二 集合:集合是没有顺序的概念。所以不能用切片和索引操作。
1 创建集合。set():可变的 ,不可变的frozenset():
接受的参数是可迭代对象,
区别可迭代对象方法:dir() 如果里面有__iter__就是可迭代对象
2 添加操作: add,update
3 删除 remove
4 成员关系 in,not in
6 交集,并集,差集 & | -
7 set去重 列表内容元素重复
##可变集合
#作为整体插入
a = set('abc')
a.add('dee')
print a #set(['a', 'c', 'b', 'dee'])
#打散进行插入
a.update('python')
print a #set(['a', 'c', 'b', 'h', 'o', 'n', 'p', 't', 'y', 'dee'])
#删除指定的元素。
a.remove('dee')
print a #set(['a', 'c', 'b', 'h', 'o', 'n', 'p', 't', 'y'])
#成员关系,in ,not in
print 'a' in a #True
##并集,交集,差集
a = set('abce')
b = set('de')
print a & b #两个集合的交集 'e'
print a | b #两个集合的并集
print a - b #两个列表的差集
a = [1,2,3,1,2]
print a
print set(a) # 去掉重复的元素
#不可变集合
t = frozenset('haha')##不能进行添加,修改和删除的操作。
##判断2个集合是否相等,之和元素本身有关,和顺序无关。
print set('abc') == set('cba') #true
相关文章推荐
- python组合数据类型--集合
- Python3组合数据类型(元组、列表、集合、字典)语法
- Python3.X基础语法(数据类型/对象引用/组合数据类型/逻辑操作符/控制流语句/算数操作符/输入输出/函数创建和引用)001
- python 学习笔记(3)数据类型2 (元组(tuple),集合,字典)
- python组合数据类型--列表
- Python数据类型之“集合(Sets)与映射(Mapping)”
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
- python基本数据类型之集合set
- Python基本数据类型__集合
- python的组合数据类型及其内置方法说明
- python set type 集合类型的数据介绍 (set frozenset)
- [Python]集合数据类型笔记
- python的数据类型和典型集合
- Python 数据类型:集合
- python基础2之数据类型---集合
- python 组合数据类型
- 佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"
- Python基础——核心数据类型_集合
- python组合数据类型
- python实操(5):python数据类型及常用操作,数字、字符串、元组、列表、字典、集合