数据类型--元祖

元祖的概念

元组是另一个数据类型,类似于List(列表)。
元组用 " ('a',2,'b') " 标识。内部元素用逗号隔开。
元祖内的元素不能二次赋值,相当于只读列表。
元祖、列表和字符串都是序列

序列的两个主要特点是:索引操作符&切片操作符
1、索引操作符让我们可以从序列中抓取一个特定项目。
2、切片操作符让我们能够获取序列的一个切片,即一部分序列。

 1 1、想提取字母b,需要用索引
 2 >>> str1='abcde'
 3 >>> str1[1]
 4 'b'
 5  
 6 2、如果想取值到d,需要用切片
 7 >>> str1[1:4]
 8 'bcd'
 9  
10 注意:数字是可取的,但是''是必须的

基本操作:

索引
切片
循环
长度
包含

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 
 4 
 5 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
 6 tinytuple = (123, 'john')
 7 
 8 print(tuple) # 输出完整元组
 9 print(tuple[0]) # 输出元组的第一个元素
10 print(tuple[1:3]) # 输出第二个至第三个的元素
11 print(tuple[2:]) # 输出从第三个开始至列表末尾的所有元素
12 print(tinytuple * 2) # 输出元组两次
13 print(tuple + tinytuple) # 打印组合的元组
14 
15 
16 返回结果:
17 ('abcd', 786, 2.23, 'john', 70.2)
18 abcd
19 (786, 2.23)
20 (2.23, 'john', 70.2)
21 (123, 'john', 123, 'john')
22 ('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

元祖和列表的区别

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 
 4 
 5 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
 6 list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
 7 
 8 tuple[2] = 1000 # 元组中是非法应用
 9 
10 输出结果:
11 tuple[2] = 1000 # 元组中是非法应用
12 TypeError: 'tuple' object does not support item assignment
13 
14 
15 list[2] = 1000 # 列表中是合法应用
16 
17 显示结果:
18 ['abcd', 786, 1000, 'john', 70.2]

元祖参数:

  1 lass tuple(object):
  2     """
  3     tuple() -> empty tuple
  4     tuple(iterable) -> tuple initialized from iterable's items
  5     
  6     If the argument is a tuple, the return value is the same object.
  7     """
  8     def count(self, value): # real signature unknown; restored from __doc__
  9         """ T.count(value) -> integer -- return number of occurrences of value """
 10         return 0
 11 
 12     def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
 13         """
 14         T.index(value, [start, [stop]]) -> integer -- return first index of value.
 15         Raises ValueError if the value is not present.
 16         """
 17         return 0
 18 
 19     def __add__(self, y): # real signature unknown; restored from __doc__
 20         """ x.__add__(y) <==> x+y """
 21         pass
 22 
 23     def __contains__(self, y): # real signature unknown; restored from __doc__
 24         """ x.__contains__(y) <==> y in x """
 25         pass
 26 
 27     def __eq__(self, y): # real signature unknown; restored from __doc__
 28         """ x.__eq__(y) <==> x==y """
 29         pass
 30 
 31     def __getattribute__(self, name): # real signature unknown; restored from __doc__
 32         """ x.__getattribute__('name') <==> x.name """
 33         pass
 34 
 35     def __getitem__(self, y): # real signature unknown; restored from __doc__
 36         """ x.__getitem__(y) <==> x[y] """
 37         pass
 38 
 39     def __getnewargs__(self, *args, **kwargs): # real signature unknown
 40         pass
 41 
 42     def __getslice__(self, i, j): # real signature unknown; restored from __doc__
 43         """
 44         x.__getslice__(i, j) <==> x[i:j]
 45                    
 46                    Use of negative indices is not supported.
 47         """
 48         pass
 49 
 50     def __ge__(self, y): # real signature unknown; restored from __doc__
 51         """ x.__ge__(y) <==> x>=y """
 52         pass
 53 
 54     def __gt__(self, y): # real signature unknown; restored from __doc__
 55         """ x.__gt__(y) <==> x>y """
 56         pass
 57 
 58     def __hash__(self): # real signature unknown; restored from __doc__
 59         """ x.__hash__() <==> hash(x) """
 60         pass
 61 
 62     def __init__(self, seq=()): # known special case of tuple.__init__
 63         """
 64         tuple() -> empty tuple
 65         tuple(iterable) -> tuple initialized from iterable's items
 66         
 67         If the argument is a tuple, the return value is the same object.
 68         # (copied from class doc)
 69         """
 70         pass
 71 
 72     def __iter__(self): # real signature unknown; restored from __doc__
 73         """ x.__iter__() <==> iter(x) """
 74         pass
 75 
 76     def __len__(self): # real signature unknown; restored from __doc__
 77         """ x.__len__() <==> len(x) """
 78         pass
 79 
 80     def __le__(self, y): # real signature unknown; restored from __doc__
 81         """ x.__le__(y) <==> x<=y """
 82         pass
 83 
 84     def __lt__(self, y): # real signature unknown; restored from __doc__
 85         """ x.__lt__(y) <==> x<y """
 86         pass
 87 
 88     def __mul__(self, n): # real signature unknown; restored from __doc__
 89         """ x.__mul__(n) <==> x*n """
 90         pass
 91 
 92     @staticmethod # known case of __new__
 93     def __new__(S, *more): # real signature unknown; restored from __doc__
 94         """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
 95         pass
 96 
 97     def __ne__(self, y): # real signature unknown; restored from __doc__
 98         """ x.__ne__(y) <==> x!=y """
 99         pass
100 
101     def __repr__(self): # real signature unknown; restored from __doc__
102         """ x.__repr__() <==> repr(x) """
103         pass
104 
105     def __rmul__(self, n): # real signature unknown; restored from __doc__
106         """ x.__rmul__(n) <==> n*x """
107         pass
108 
109     def __sizeof__(self): # real signature unknown; restored from __doc__
110         """ T.__sizeof__() -- size of T in memory, in bytes """
111         pass
112 
113 tuple
元祖源代码
原文地址:https://www.cnblogs.com/abobo/p/8032731.html