4.1 元组定义:
- 说明:元组不可以修改,一般用圆括号括起来
- 例子:
元组的定义:使用圆括号括起来,元素之间用逗号分隔;空的圆括号表示空元组;当只有一个元素时,必须以逗号结尾。
#一般元组
>>> 1,2,3
(1, 2, 3)
>>> (1,2,3)
(1, 2, 3)
#一个元素的元组
>>> (1,)
(1,)
>>> 2,
(2,)
#空元组
>>> ()
()
>>>
#元组的乘法
>>> 4* (2,)
(2, 2, 2, 2)
>>>
4.2 tuple函数
- 说明:以一个序列为参数,将其转换为元组;
- 例子:
>>> tuple("CONSTANT")
('C', 'O', 'N', 'S', 'T', 'A', 'N', 'T')
>>> tuple(list("CONST"))
('C', 'O', 'N', 'S', 'T')
>>>
创建一个tuple是简单,只要把不同的逗号分隔值可选,你可以把这些括号逗号分隔值。例如:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
空的tuple包含两个没有括号写:
tup1 = ();
写一个包含一个单一的价值,你必须包含一个逗号,即使是只有一个值:
tup1 = (50,);
字符串的索引一样,元组指数从0开始,元组可以被切片,串联等。
访问元组中的值:
要访问的tuple值,使用指数或指数切片获得的价值在该指数的方括号:
例如:
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
这将输出以下结果:
tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]
更新元组:
元组是不可改变的,这意味着你不能更新或改变元组元素的值。但是,我们能够能够利用现有的元组的部分如下创建一个新的元组:
例如:
#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# Following action is not valid for tuples
# tup1 += tup2;
# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;
这将输出以下结果:
(12, 34.56, 'abc', 'xyz')
删除元组的元素:
删除单个元组元素是不可能的。有,当然,把另一个丢弃不需要的元素的tuple没有错。
要明确地删除整个元组,只需使用del语句:
例如:
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : "
print tup;
这将输出以下结果:
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, inprint tup;
NameError: name 'tup' is not defined
基本操作元组:
元组的回应很像字符串+和*运算符,他们在这里的意思串联重复太多,但结果是一个新的tuple,而不是一个字符串。
事实上,元组应对所有在之前的章节,我们对字符串使用的一般顺序操作:
Python表达式 | 结果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | Length |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Concatenation |
['Hi!'] * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | Repetition |
3 in (1, 2, 3) | True | Membership |
for x in (1, 2, 3): print x, | 1 2 3 | Iteration |
索引,切片,和矩阵:
因为元组序列,索引和切片工作,以同样的方式,为他们做字符串的元组。
假设下面的输入:
L = ('spam', 'Spam', 'SPAM!')
Python 表达式 | 结果 | 描述 |
---|---|---|
L[2] | 'SPAM!' | Offsets start at zero |
L[-2] | 'Spam' | Negative: count from the right |
L[1:] | ['Spam', 'SPAM!'] | Slicing fetches sections |
没有围护分隔符:
任何多个对象的集合,以逗号分隔,没有识别符号写的,也就是说,括号内的元组的列表,括号等,默认元组,因为在这些短期的例子表明:
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;
print var;
这将输出以下结果:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
result = '%s%s' % (self._root, self._key)
偶尔格式化字符串时会加入tuple,我一直弱弱地这么做:
1 | tup = ( 1 , 2 ) |
2 | 'tup: (%d, %d)' % (tup[ 0 ], tup[ 1 ]) |
或者这么做
1 | tup = ( 1 , 2 ) |
2 |
|