Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按字母顺序排列列表的函数?_Python_List - Fatal编程技术网

Python 按字母顺序排列列表的函数?

Python 按字母顺序排列列表的函数?,python,list,Python,List,我需要一个函数,将按字母顺序排列我的列表,如果列表没有按字母顺序排列,则返回False;如果列表是按字母顺序排列,则返回True 它应该是这样工作的: >>> ordered(['Cilka', 'Berta', 'Dani', 'Ana', 'Ema']) False >>> ordered(["Ana", "Berta", "Cilka", "Dani", "Ema"]) True 名字是斯洛文尼亚语的,别介意 我写过这样的话: def ordered(

我需要一个函数,将按字母顺序排列我的列表,如果列表没有按字母顺序排列,则返回False;如果列表是按字母顺序排列,则返回True

它应该是这样工作的:

>>> ordered(['Cilka', 'Berta', 'Dani', 'Ana', 'Ema'])
False
>>> ordered(["Ana", "Berta", "Cilka", "Dani", "Ema"])
True
名字是斯洛文尼亚语的,别介意

我写过这样的话:

def ordered(s):

s是列表的名称。您能帮助我吗?

由于字符串的顺序已经是字母顺序,您可以使用:

实例 这种方法的问题在于,它在比较之前生成列表的排序版本。因此,如果列表非常大,您只需检查每个元素是否按字典顺序位于以下元素之前:

def ordered2(lst):
    return all(lst[i] <= lst[i + 1] for i in xrange(len(lst) - 1))
>>> ordered2(['Cilka', 'Berta', 'Dani', 'Ana', 'Ema'])
False
>>> ordered2(["Ana", "Berta", "Cilka", "Dani", "Ema"])
True
或者,如果你真的想成为超级懒惰和超级蟒蛇,你可以使用izip和islice:


如您所见,ordered2和ordered3比ordered快得多。这是因为初始排序操作意味着On·ln成本,而不是其他两种方法中的成本。

def urejens:return s==sorteds urejen['Cilka','Berta','Dani','Ana','Ema']我必须做什么,所以它将打印false或true?因为它不打印它…在调用函数之前添加打印?print urejen['Cilka'、'Berta'、'Dani'、'Ana'、'Ema']我已经写了这篇文章-在把作业交给我们之前,你真是太好了。你的标题说你想订购一个列表,你的问题说你想知道列表是否已订购。是哪一个?
def ordered2(lst):
    return all(lst[i] <= lst[i + 1] for i in xrange(len(lst) - 1))
>>> ordered2(['Cilka', 'Berta', 'Dani', 'Ana', 'Ema'])
False
>>> ordered2(["Ana", "Berta", "Cilka", "Dani", "Ema"])
True
from itertools import izip, islice

def ordered3(lst):
    return all(x <= y for x, y in izip(islice(lst, 0), islice(lst, 1)))
In [20]: from random import shuffle

In [21]: lst = range(10000)

In [22]: shuffle(lst)

In [23]: %timeit ordered(lst)
1000 loops, best of 3: 1.48 ms per loop

In [24]: %timeit ordered2(lst)
1000000 loops, best of 3: 696 ns per loop

In [25]: %timeit ordered3(lst)
1000000 loops, best of 3: 602 ns per loop