Python 全栈之路系列之元组数据类型

2017-01-13 11:25:14 +08:00
 ansheng

元组(tuple)和列表的为唯一区别就是列表可以更改,元组不可以更改,其他功能与列表一样

创建元组的两种方法

第一种

ages = (11, 22, 33, 44, 55)

第二种

ages = tuple((11, 22, 33, 44, 55))

如果元祖内只有一个元素,那么需要加上一个逗号,否则就变成字符串了。

In [1]: t = (1)

In [2]: t
Out[2]: 1

In [3]: type(t)
Out[3]: int

In [4]: t = (1,)

In [5]: t
Out[5]: (1,)

In [6]: type(t)
Out[6]: tuple

元组所具备的方法

查看列表中元素出现的次数

count(self, value):

|属性|描述| |:--|:--| |value|元素的值|

>>> ages = tuple((11, 22, 33, 44, 55))
>>> ages
(11, 22, 33, 44, 55)
>>> ages.count(11)
1

查找元素在元组中的位置

index(self, value, start=None, stop=None):

|属性|描述| |:--|:--| |value|元素的值| |start|开始的位置| |stop|结束的位置|

>>> ages = tuple((11, 22, 33, 44, 55))
>>> ages.index(11)
0
>>> ages.index(44)
3

列表嵌套

>>> T = (1,2,3,4,5)
>>> (x * 2 for x in T)
<generator object <genexpr> at 0x102a3e360>
>>> T1 = (x * 2 for x in T)
>>> T1
<generator object <genexpr> at 0x102a3e410>
>>> for t in T1: print(t)
... 
2
4
6
8
10

元组嵌套修改

元组的元素是不可更改的,但是元组的元素的元素就可能是可以更改的

>>> tup=("tup",["list",{"name":"ansheng"}])
>>> tup
('tup', ['list', {'name': 'ansheng'}])
>>> tup[1]
['list', {'name': 'ansheng'}]
>>> tup[1].append("list_a")
>>> tup[1]
['list', {'name': 'ansheng'}, 'list_a']

元组的元素本身是不可修改的,但是如果元组的元素是个列表或者字典那么就可以被修改

切片原地修改不可变类型

>>> T = (1,2,3)
>>> T = T[:2] + (4,)
>>> T
(1, 2, 4)

原文地址

1099 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX