如何访问“匿名”变量?

时间:2014-10-16 05:19:01

标签: python list sorting python-2.7 tuples

有一些内置函数直接修改对象并返回None。一个示例是sort() list方法,其中对象本身被修改,即排序,但返回None

我的问题是,我如何访问list(T).sort(),其中T是一个元组说T =(5,1,2,3,4,5),而没有先将list(T)赋给显式变量?

3 个答案:

答案 0 :(得分:2)

元组是不可变的,因此你不能真正地改变元素的顺序。这就是tuple.sort函数不存在的原因。所以你有两种选择。

  1. 使用已排序的元素

  2. 创建一个新的元组对象
  3. 将元组转换为允许对其元素进行排序的对象(例如list s)。

  4. 所以,如果你有一个元组,你可以简单地做

    sorted(tupleObject)
    

    获取已排序项目的新列表。然后,如果需要,您可以将该列表对象转换为元组,如此

    tuple(sorted(tupleObject))
    

答案 1 :(得分:2)

在Python中,传统意义上没有变量;有名称,指向对象。对象具有值和类型,名称只是引用对象的一种方式。

因此,名称本身没有意义 - 名称仅在指向对象时使用,否则使用对象"暂时"没有名字。

你的例子中发生了什么。当您创建list(T)并且不将其分配给名称时,您无法再引用它。

要解决您的实际问题,您可以直接在元组上使用sorted(),但请注意它会返回一个列表:

>>> foo = sorted((0,1,4,3,5))
>>> foo
[0, 1, 3, 4, 5]

您仍然无法访问原始未排序的元组(除非您先将其指定给名称)。

答案 2 :(得分:0)

而不是list.sort,请使用内置的sorted

sorted(list(T))