您的位置:首页 > 编程语言 > Python开发

python元组学习

2016-05-29 23:32 337 查看
元组

>>> s = "abc"

>>> s

'abc'

>>> t = 123,'abc',["come","here"]

>>> t

(123,'abc',["come","here"])

上面的例子中看到的变量t,并没有报错,也没有"最后一个有效",而是将对象作为一个新的数据类型:tuple(元组),赋值给了变量t。

元组是用括号括起来的,其中的元素之间用逗号隔开。

元组中的元素类型是任意的python数据

>>> print "I love %s, and I am a %s" % ('python', 'programmer')

I love python, and I am a programmer

这里的圆括号,就是一个元组。

>>> t = 1,"23",[123,"abc"],("python","learn")  #元素多样性,近list

>>> t

(1,"23",[123,"abc"],("python","learn"))

>>> t[0] = 0   #不能原地修改,近str

TypeError:

>>> t.append("no")

AttributeError:

索引和切边

>>> t

(1,"23",[123,"abc"],("python","learn"))

>>> t[2]

[123, 'abc']

>>> t[1:]

("23",[123,"abc"],("python","learn"))

>>> t[2][0]  #

123

>>> t[3][1]

'learn'

特别提醒:如果一个元组中只有一个元素的时候,应该在该元素后面加一个半角的英文逗号

>>> a = (3)

>>> type(a)

<type 'int'>

>>> b = (3,)

>>> type(b)

<type 'ruple'>

如果不加那个逗号,就不是元组。这也是为了避免让python误解你表达的内容。

分别用list()和tuple()能够实现两者的转化:

>>> t

(1,"23",[123,"abc"],("python","learn"))

>>> tls = list(t)

>>> tls

[1,"23",[123,"abc"],("python","learn")]

>>> t_tuple = tuple(tls)

>>> t_tuple

(1,"23",[123,"abc"],("python","learn"))

tuple用在哪里?

它的使用情景:

1)Tuple比list操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用tuple替代list。

2)如果对不需要修改的数据进行“写保护”,可以使用代码更安全。使用tuple而不是list如同拥有一个隐含的assert语句,说明这一数据是常量。如果必须要改变这些值,则需要执行tuple到list的转换(需要使用一个特殊的函数)。

3)Tuple可以在dictionary(字典)中被用做Key。但是list不行。Dictionary key必须是不可变的。Tuple本身是不可变的,但是如果您有一个list的tuple,那就认为是可变的了,用作dictionary key就是不安全的。

4)Tuples可以用在字符串格式化中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python