python列表中的元组_Python 中列表和元组有哪些区别?

python经典面试题:列表和元组有什么异同?​www.jianshu.com

列表和元组是Python中最常用的两种数据结构,字典是第三种。 相同点:都是序列

都可以存储任何数据类型

可以通过索引访问

语法差异

使用方括号[]创建列表,而使用括号()创建元组。 请看以下示例:

>>> l = ["https://china-testing.github.io/", "https://www.oscobo.com/"]

>>> t = ("https://china-testing.github.io/", "https://www.oscobo.com/")

>>> print(l)

['https://china-testing.github.io/', 'https://www.oscobo.com/']

>>> print(t)

('https://china-testing.github.io/', 'https://www.oscobo.com/')

>>> print(type(l))

>>> print(type(t))

是否可变

列表是可变的,而元组是不可变的,这标志着两者之间的关键差异。

我们可以修改列表的值,但是不修改元组的值。

由于列表是可变的,我们不能将列表用作字典中的key。 但可以使用元组作为字典key。

>>> l[1] = "https://www.jianshu.com/u/69f40328d4f0"

>>> l

['https://china-testing.github.io/', 'https://www.jianshu.com/u/69f40328d4f0']

>>> t[1] = "https://www.jianshu.com/u/69f40328d4f0"

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

重用与拷贝

元组无法复制。 原因是元组是不可变的。 如果运行tuple(tuple_name)将返回自己。

>>> copy_t = tuple(t)

>>> print(t is copy_t)

True

>>> copy_l = list(l)

>>> print(l is copy_l)

False

参考资料

大小差异

Python将低开销的较大的块分配给元组,因为它们是不可变的。 对于列表则分配小内存块。 与列表相比,元组的内存更小。 当你拥有大量元素时,元组比列表快。列表的长度是可变的。

>>> l = ["https://china-testing.github.io/", "https://www.oscobo.com/"]

>>> t = ("https://china-testing.github.io/", "https://www.oscobo.com/")

>>> print(l.__sizeof__())

56

>>> print(t.__sizeof__())

40

同构与异构

习惯上元组多用于用于存储异构元素,异构元素即不同数据类型的元素,比如(ip,port)。 另一方面,列表用于存储异构元素,这些元素属于相同类型的元素,比如[int1,in2,in3]。

欢迎 关注 点赞,谢谢!

python作业毕设​www.zhihu.comv2-5f7a9758bcf599bad8aff22a8b670c12_ipico.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值