【Python】数据结构:元组,括号表示()
1.元组
元组和列表类似,也是一种容器数据类型,可以用一个变量(对象)来存储多个数据,但元组的元素不能修改,把多个元素组合到一起就形成了一个元组。
t = ('张三', 38, True, '中国上海')
print(t) # ('张三', 38, True, '中国上海')
print(t[0]) # 张三
print(t[3]) # 中国上海
for member in t: #遍历元组
print(member)
t[0] = '李四' # 给某个元素重新赋值会报错,TypeError: 'tuple' object does not support item assignment
t = ('王五', 20, True, '浙江温州')
print(t) # ('王五', 20, True, '浙江温州') 重新引用新的元组,原来的元组被回收了
2.元组和列表的转换
(1)元组-->列表
使用list(元组),元组的元素可以修改
t = ('王五', 20, True, '浙江温州')
person = list(t)
print(person) # ['王五', 20, True, '浙江温州']
person[0] = '老刘'
person[1] = 25
print(person) # ['老刘', 25, True, '浙江温州']
(2)列表-->元组
fList = ['苹果', '香蕉', '西瓜']
fTuple = tuple(fList)
print(fTuple) # ('苹果', '香蕉', '西瓜')
3.有了列表为什么还需要元组
(1)元组中的元素无法修改,尤其在多线程环境中不变的对象(元组)更容易维护。
(2)线程无法修改不变对象的内部状态,因此该对象是线程安全的,可以省掉同步操作,因此一个不变对象可以方便的被共享访问。
(3)如果不需要对元素进行添加、删除、修改时,可以考虑使用元组。
(4)元组在创建时间和占用空间上优于列表。
- 判断占用空间
fList = ['苹果', '香蕉', '西瓜']
fTuple = tuple(fList)
print(sys.getsizeof(fList)) # 88
print(sys.getsizeof(fTuple)) # 72
- 判断创建时间
命令行使用ipython
pip install ipython #安装
ipython #打开