如何使用.sort方法对列表进行排序(未排序)?

时间:2016-08-21 03:49:29

标签: list python-2.7 sorting

我不确定我尝试过的代码有什么问题但是失败了。我知道sort函数会对列表进行排序,但我不想使用sorted函数。相反,我只想使用排序。这是我的代码:

def assignment():
    fname = raw_input("Enter file name: ")
    if len(fname) == 0:
        fname = "romeo.txt"
    fh = open(fname)
    lst = list()
    for line in fh:
        x = line.rstrip()
        lst.append(x.split(" "))
        for elem in lst:
            print elem.sort()


assignment()

结果:

none

然而,当我尝试这段代码时,我的工作有点工作但却没有按照我想要的方式工作

def assignment():
    fname = raw_input("Enter file name: ")

    if len(fname) == 0:
        fname = 'romeo.txt'

    fh = open(fname)
    lst = list()

    for line in fh:
        x = line.rstrip()
        lst.append(x.split(" "))
        for elem in lst:
            print elem.sort()
    print lst
assignment()

结果:

Enter file name: 
None
[['a', 'b', 'c', 'd', 'e']]

Process finished with exit code 0

2 个答案:

答案 0 :(得分:0)

您不能使用sort()对字符串元素进行排序。但是您可以这样做

  for elem in lst:
      print ''.join(sorted(elem))

输入:asdaa 输出:aaads

答案 1 :(得分:0)

.sort方法对列表进行排序并且不返回任何内容(None),如果要打印列表,则打印列表。

这应该产生预期的输出:

...
for elem in lst:
    elem.sort()
    print elem
...