【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		#打开

image

posted @ 2023-03-06 17:03  植树chen  阅读(37)  评论(0编辑  收藏  举报