python nonetype转换list_无法在Python中反转列表,获取“Nonetype”列表

无法在Python中反转列表,获取“Nonetype”列表

我有一个.py文件,它需要一个列表,find最小的数字,把它放到一个新的数组中,从第一个数组中删除最小的数字,并重复,直到原始数组返回包含没有更多的项目:

def qSort(lsort): listlength = len(lsort) sortedlist = list() if listlength == 0: return lsort else: while listlength > 0: lmin = min(lsort) sortedlist.append(lmin) lsort.remove(lmin) listlength = len(lsort) return sortedlist

现在另一个.py文件导入qSort并在某个列表上运行它,并将其保存到一个variables中。 然后我尝试在列表中使用.reverse()命令,并最终将其作为NoneType 。 我尝试使用reversed() ,但它所做的只是说: "" :

from qSort import qSort #refer to my first Pastebin qSort = qSort([5,42,66,1,24,5234,62]) print qSort #this prints the sorted list print type(qSort) #this prints print qSort.reverse() #this prints None print reversed(qSort) #this prints ""

任何人都可以解释为什么我似乎无法扭转的名单,不pipe我做什么?

正如jcomeau提到的, .reverse()函数改变了列表的位置。 它不返回列表,而是改变了qSort 。

如果你想'返回'反向列表,所以它可以像你在你的例子中尝试使用,你可以做一个方向为-1的片

所以用print qSort[::-1]replaceprint qSort.reverse()

语法是: a[firstIndexInclusive:endIndexExclusive:Step]

>>> a = range(20) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> a[7:] #seventh term and forward [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> a[:11] #everything before the 11th term [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a[::2] # even indexed terms. 0th, 2nd, etc [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>> a[4:17] [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] >>> a[4:17:2] [4, 6, 8, 10, 12, 14, 16] >>> a[::-1] [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] >>> a[19:4:-5] [19, 14, 9] >>> a[1:4] = [100, 200, 300] #you can assign to slices too >>> a [0, 100, 200, 300, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

list.reverse()就地倒置,不返回任何内容(无)。 所以你不要说:

mylist = mylist.reverse()

你说:

mylist.reverse()

或者可选地:

mylist = list(reversed(mylist))

reverse() list方法对列表进行sorting,并返回None以提醒您(根据文档中的注释7)。 内置的reversed()函数返回一个迭代器对象,它可以通过将它传递给list()构造函数,如下所示变成list对象: list(reversed(qSort)) 。 您可以通过创build一个具有负值步长的切片来完成相同的操作,所以它会倒退,即qSort[::-1] 。

顺便说一句, list也有一个sort()方法(但要小心,它也返回None ;-)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值