精华内容
下载资源
问答
  • python tuple什么意思

    python tuple什么意思?

    python tuple即元组,tuple()函数将列表转换为元组。

    tuple()方法语法:tuple( seq )

    参数

    seq -- 要转换为元组的序列。

    返回值

    返回元组。

    以下实例展示了 tuple()函数的使用方法:

    实例 1>>>tuple([1,2,3,4])

    (1, 2, 3, 4)

    >>> tuple({1:2,3:4}) #针对字典 会返回字典的key组成的tuple

    (1, 3)

    >>> tuple((1,2,3,4)) #元组会返回元组自身

    (1, 2, 3, 4)

    实例 2#!/usr/bin/python

    aList = [123, 'xyz', 'zara', 'abc'];

    aTuple = tuple(aList)

    print "Tuple elements : ", aTuple

    以上实例输出结果为:Tuple elements : (123, 'xyz', 'zara', 'abc')

    展开全文
  • 两个元组的相加格式:x.__add__(y)等同于x+y... (1, 2, 3, 2, 3, 4)返回值:tuple#只能是两个元组相加,生成一个新元组判断是否是包含关系格式:x.__contains__(y)等同于y in x例如:tu1 = (1,2,3,)print(tu1.__co...

    两个元组的相加

    格式:x.__add__(y)等同于x+y

    例如:tu1 = (1,2,3,)

    print(tu1.__add__((2,3,4,)))

    >>> (1, 2, 3, 2, 3, 4)

    返回值:tuple

    #只能是两个元组相加,生成一个新元组

    判断是否是包含关系

    格式:x.__contains__(y)等同于y in x

    例如:tu1 = (1,2,3,)

    print(tu1.__contains__(3))

    >>> True

    返回值:bool

    #上述的y可以是任意对象object

    判断两个元组是否相等

    格式:x.__eq__(y)等同于x==y

    例如:tu1 = (1,2,3,)

    print(tu1.__eq__((2,3,)))

    >>> False

    返回值:bool

    #上述的y只能是元组

    大于等于

    格式:x.__ge__(y)等同于x>=y

    例如:tu1 = (1,2,3,)

    print(tu1.__ge__((2,3,)))

    >>> False

    返回值:bool

    #上述的y只能是元组

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

    访问属性

    格式:x.__getattribute__(self,name)

    返回值:str

    取出指定索引的值

    格式:x.__getitem__(index)等同于tuple[index]

    例如:tu1 = (1,2,3,)

    print(tu1.__getitem___(2))

    >>> 3

    返回值:object

    元组元素化

    格式:x.__getnewargs__()

    例如:tu1 = (1,2,3,)

    print(tu1.__getnewargs__())

    >>> ((1,2,3,),)

    返回值:tuple

    #把原元组作为一个新元组的一个元素

    大于

    格式:x.__gt__(y)等同于x>y

    例如:tu1 = (1,2,3,)

    print(tu1.__gt__((2,3,)))

    >>> False

    返回值:bool

    #上述的y只能是元组

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

    哈希化

    格式:x.__hash__()等同于hash(x)

    例如:tu1 = (1,2,3,)

    print(tu1.__hash__())

    >>> 2528502973977326415

    返回值:int

    迭代器

    格式:x.__iter__()等同于iter(x)

    例如:tu1 = (1,2,3,)

    die = tu1.__iter__()

    print(die.__next__())

    >>> 1

    返回值:迭代器

    小于等于

    格式:x.__le__(y)等同于x<=y

    例如:tu1 = (1,2,3,)

    print(tu1.__le__((2,3,)))

    >>> True

    返回值:bool

    #上述的y只能是元组

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

    长度

    格式:x.__len__()等同于len(x)

    例如:tu1 = (1,2,3,)

    print(tu1.__len__())

    >>> 3

    返回值:int

    小于

    格式:x.__lt__(y)等同于x

    例如:tu1 = (1,2,3,)

    print(tu1.__lt__((2,3,)))

    >>> True

    返回值:bool

    #上述的y只能是元组

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

    相乘(复制)

    格式:x.__mul__(num)等同于x*num

    例如:tu1 = (1,2,3,)

    print(tu1.__mul__(2))

    >>> (1,2,3,1,2,3)

    返回值:tuple

    不等于 格式:x.ne(y)等同于x!=y 例如:tu1 = (1,2,3,) print(tu1.ne((2,3,))) >>> True 返回值:bool #上述的y只能是元组

    创建新元组

    格式:x.__new__(tuple)

    例如:tu1 = (1,2,3,)

    print(tu1.__new__(tuple))

    >>> ()

    返回值:tuple

    内置转换方法

    格式:x.__repr__(self)

    返回值:tuple

    右→左 相乘(复制)

    格式:x.__rmul__(num)等同于num*x

    例如:tu1 = (1,2,3,)

    print(tu1.__rmul__(2))

    >>> (1,2,3,1,2,3)

    返回值:tuple

    展开全文
  • 一、创建元组tup1 = ('physics', 'chemistry...元组只包含一个元素时,需要元素后面添加逗号来消除歧义tup1 = (50,);元组与字符串类似,下标索引从0开始,可以进行截取,组合等。二、访问元组元组可以使用下标索...

    一、创建元组tup1 = ('physics', 'chemistry', 1997, 2000);

    tup2 = (1, 2, 3, 4, 5 );

    tup3 = "a", "b", "c", "d";

    创建空元组tup1 = ();

    元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义tup1 = (50,);

    元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

    二、访问元组

    元组可以使用下标索引来访问元组中的值,如下实例:#!/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');

    # 以下修改元组元素操作是非法的。

    # tup1[0] = 100;

    # 创建一个新的元组

    tup3 = tup1 + tup2;

    print tup3;

    #以上实例输出结果:

    #(12, 34.56, 'abc', 'xyz')

    四、删除元组

    元组中的元素值是不允许删除的,但我们可以使用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, in

    # print tup;

    #NameError: name 'tup' is not defined[/code]

    五、元组运算符

    与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

    六、元组索引,截取

    因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

    元组:L = ('spam', 'Spam', 'SPAM!')

    七、无关闭分隔符

    任意无符号的对象,以逗号隔开,默认为元组,如下实例:#!/usr/bin/python

    print 'abc', -4.24e93, 18+6.6j, 'xyz';

    x, y = 1, 2;

    print "Value of x , y : ", x,y;

    以上实例允许结果:abc -4.24e+93 (18+6.6j) xyz

    Value of x , y : 1 2

    八、元组内置函数

    Python元组包含了以下内置函数

    1、cmp(tuple1, tuple2):比较两个元组元素。

    2、len(tuple):计算元组元素个数。

    3、max(tuple):返回元组中元素最大值。

    4、min(tuple):返回元组中元素最小值。

    5、tuple(seq):将列表转换为元组。

    九、另一种解读

    tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:>>> classmates = ('Michael', 'Bob', 'Tracy')

    现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

    不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

    tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:>>> t = (1, 2)

    >>> t

    (1, 2)

    如果要定义一个空的tuple,可以写成():>>> t = ()

    >>> t

    ()

    但是,要定义一个只有1个元素的tuple,如果你这么定义:>>> t = (1)

    >>> t

    1

    定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

    所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:>>> t = (1,)

    >>> t

    (1,)

    Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

    在来看一个“可变的”tuple:>>> t = ('a', 'b', ['A', 'B'])

    >>> t[2][0] = 'X'

    >>> t[2][1] = 'Y'

    >>> t

    ('a', 'b', ['X', 'Y'])

    这个tuple定义的时候有3个元素,分别是'a','b'和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?

    别急,我们先看看定义的时候tuple包含的3个元素:

    当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:

    表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

    理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

    更多Python 元组(Tuple)操作详解相关文章请关注PHP中文网!

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

    本文系统来源:php中文网

    展开全文
  • 这就是术语“iterable”在Python的doc的定义:iterableAn object capable of returning its members one at a time.Examples of iterables include all sequence types (such as list, str,and tuple) an...

    首先我要澄清的是,我并不是问什么是“迭代器”。

    这就是术语“iterable”在Python的doc中的定义:iterable

    An object capable of returning its members one at a time.

    Examples of iterables include all sequence types (such as list, str,

    and tuple) and some non-sequence types like dict, file objects, and

    objects of any classes you define with an __iter__() or __getitem__() method.

    Iterables can be used in a for loop and in many other places

    where a sequence is needed (zip(), map(), ...). When an iterable

    object is passed as an argument to the built-in function iter(), it

    returns an iterator for the object. This iterator is good for one pass

    over the set of values. When using iterables, it is usually not

    necessary to call iter() or deal with iterator objects yourself. The

    for statement does that automatically for you, creating a temporary

    unnamed variable to hold the iterator for the duration of the loop.

    See also iterator, sequence, and generator.

    作为other people suggested,使用isinstance(e, collections.Iterable)是检查对象是否可iterable的最python方法。

    所以我用Python3.4.3做了一些测试:from collections.abc import Iterable

    class MyTrain:

    def __getitem__(self, index):

    if index > 3:

    raise IndexError("that's enough!")

    return index

    for name in MyTrain():

    print(name) # 0, 1, 2, 3

    print(isinstance(MyTrain(), Iterable)) # False

    结果很奇怪:MyTrain定义了__getitem__方法,但它不被视为iterable对象,更不用说它一次可以返回一个数字。

    然后我删除了__getitem__,并添加了__iter__方法:from collections.abc import Iterable

    class MyTrain:

    def __iter__(self):

    print("__iter__ called")

    pass

    print(isinstance(MyTrain(), Iterable)) # True

    for name in MyTrain():

    print(name) # TypeError: iter() returned non-iterator of type 'NoneType'

    它现在被认为是一个“真正的”iterable对象,尽管它在迭代时不能产生任何东西。

    所以我是不是误解了什么,还是文件不正确?

    展开全文
  • 列表(list):首先,列表属于序列,那么...tuple(iter):把一个可迭代对象转换为一个元组。unicode(obj):把对象转换成Unicode字符串。basestring():抽象工厂函数,其作用仅仅是为str和unicode函数提供父类,所以不能...
  • 综述迭代器对于原生支持随机访问的数据结构(如tuple、list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值)。但对于无法随机访问的数据结构(比如set)而...
  • 可以看成是压缩,zip在python中相当于压缩zip()函数的定义(推荐学习:Python视频教程)从参数中的多个迭代器取元素组合成一个新的迭代器;返回:返回一个zip对象,其内部元素为元组;可以转化为列表或元组;传入参数...
  • None在python中是个神奇的东西,它的含义是空,但是却不等于空字符串、空列表、空元组、也不等于False。可以进行验证:emptyList = list() # 等于[]emptyTuple = tuple() # 等于()emptyString = str() # 等于""bool...
  • 刚刚看了一下Python里面的enumerate的部分, enumerate每次回返回一个tuple, (index, value)例子很简单:for i, v in enumerate(['tic', 'tac', 'toe']):print i,v0 tic1 tac2 toeenumerate里面我们可以放置一个...
  • 详细内容可以看成是压缩,zip在python中相当于压缩zip()函数的定义(推荐学习:Python视频教程)从参数中的多个迭代器取元素组合成一个新的迭代器;返回:返回一个zip对象,其内部元素为元组;可以转化为列表或元组;...
  • 可以看成是压缩,zip在python中相当于压缩zip()函数的定义(推荐学习:Python视频教程)从参数中的多个迭代器取元素组合成一个新的迭代器;返回:返回一个zip对象,其内部元素为元组;可以转化为列表或元组;传入参数...
  • 展开全部如果给定一个list或tuple,我们可以通过for循环来遍历这个list...在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:for (i=0; i}可以看出,P...
  • 可以看成是压缩,zip在python中相当于压缩zip()函数的定义(推荐学习:Python视频教程)从参数中的多个迭代器取元素组合成一个新的迭代器;返回:返回一个zip对象,其内部元素为元组;可以转化为列表或元组;传入参数...
  • 可以看成是压缩,zip在python中相当于压缩zip()函数的定义从参数中的多个迭代器取元素组合成一个新的迭代器;返回:返回一个zip对象,其内部元素为元组;可以转化为列表或元组;传入参数:元组、列表、字典等迭代器...
  • 了解一下python中的切片是什么意思,以及切片在python之中能起到什么样的作用。取一个list或tuple的部分元素是在python编程之中非常常见的操作。比如,一个list如下:>>> L = ['Michael', 'Sarah', 'Tracy'...
  • hashable ≈ imutable 可哈希 ≈ 不可变在Python中:list、set和dictionary 都是可改变的,比如可以通过list.append(),set.remove(),dict[‘key‘] = value对其进行修改,所以它们都是不可哈希的;而tuple和string...
  • hashable ≈ imutable 可哈希 ≈ 不可变在Python中:list、set和dictionary 都是可改变的,比如可以通过list.append(),set.remove(),dict[‘key‘] = value对其进行修改,所以它们都是不可哈希的;而tuple和string...
  • 1、index()一般用处是序列检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen')>>> t('A', 'l', 'l', 'e', 'n')>>> t.index('a')Traceback (most recent ...
  • Python语言简洁明了,可以用较少...List字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List:L = [12, 'China', 19.998]可以看到并不要求元素的类型都是一样的。当然也可以定义一...
  • python中的set介绍:set:类似dict,是一组dict的集合,不存储value。本质:无序(没有下标)无重复的元素的集合。1、创建set创建set需要一个list或者tuple或者dict作为输入集合。重复元素色中会被自动过滤。s1=[1,2,...
  • python元组(tuple)是一个不可变的序列。Python元组和Python列表数据类似,都是线性表。唯一不同的是,Python元组赋值后所...元组创建很简单,只需要括号添加元素,并使用逗号隔开即可。如下实例:实例(Python...
  • index()一般用处是序列检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen')>>> t('A', 'l', 'l', 'e', 'n')>>> t.index('a')Traceback (most recent call ...
  • 至于list和tuple的区别,在于list可以在运行时修改内容和大小,tuple在首次创建和赋值后, 不可以再次修改内部的内容不过python 有提供一个array模块,用于提供基本数字,字符类型的数组.用于容纳字符号,整型,浮点等基本...
  • 在以下的文章之中我们来了解一下python之中的迭代。了解一下迭代是什么意思,以及在python的编程之中迭代能起到什么样的...(在Python中,迭代是通过for ... in来完成的)Python的for循环抽象程度要高于C的for循环,...
  • Var是什么意思?怎么用?等等等,大家先别急,var不是一个生僻的函数,甚至说,这是一个会经常见到的函数,它可以跟很多函数搭配使用,甚至调用时候也非常的好用,好了,话不多说,一起来看看吧~关于var函数:*var...
  • #coding=utf-8#python中list...#删除指定索引位置元素y = l.pop(2)#直接替换值l[1] = 100#创建final属性的list 在python中叫做 tuple:元组t = ('a',2,3)#元组中嵌套listt2 = (1,2,[3,4])'''python中流程判断语句'''#...

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

tuple在python中什么意思

python 订阅