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/pythontup1 = ('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]: physicstup2[1:5]: [2, 3, 4, 5]
更新元组:
元组是不可改变的,这意味着你不能更新或改变元组元素的值。但是,我们能够能够利用现有的元组的部分如下创建一个新的元组:
例如:
#!/usr/bin/pythontup1 = (12, 34.56);tup2 = ('abc', 'xyz');# Following action is not valid for tuples# tup1 += tup2;# So let's create a new tuple as followstup3 = tup1 + tup2;print tup3;
这将输出以下结果:
(12, 34.56, 'abc', 'xyz')
删除元组的元素:
删除单个元组元素是不可能的。有,当然,把另一个丢弃不需要的元素的tuple没有错。
要明确地删除整个元组,只需使用del语句:
例如:
#!/usr/bin/pythontup = ('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/pythonprint '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) xyzValue 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 |
|