您将如何使用循环来打印有序列表?

时间:2019-01-04 11:17:12

标签: python

我将如何打印订单列表,所以如果我输入猕猴桃,狗,猫,它将打印

cat
kiwi 
dog

这是我的代码:

    input_string = input("Enter a list element separated by comma:")
lisp = input_string. split(',')
for i in lisp:
    if 'cat' == i:
        print ('cat')
    elif 'kiwi' == i:
        print ('kiwi')
    else:
        print (i)

这是它产生的东西:

猕猴桃  狗  猫

[更新代码] 我知道如何使用sort方法按字母顺序排列,但是我需要将列表按一定顺序排列,并在底部添加随机单词(例如dog)。我不是编码员,也不是学生,我正在尝试学习。因此,我感谢所有帮助,所有方法以及您的耐心等待。

4 个答案:

答案 0 :(得分:0)

只要做:

input_string = input("Enter a list element separated by comma")
lisp = input_string. split(',')
print(sorted(lisp))

input:
[c,b,a]

output:
[a,b,c]

“排序”方法对元素进行排序。您可以根据需要指定排序方法。

e.g:
sorted(iterable[, key][, reverse])

答案 1 :(得分:0)

听起来好像您想按顺序打印列表,只是将"cat""kiwi"移到最前面。这本来可以工作的:

lisp = ['kiwi', 'cat', 'dog']

if 'cat' in lisp:
    print('cat')
if 'kiwi' in lisp:
    print('kiwi')
for i in lisp:
    if i not in ('cat', 'kiwi'):
         print(i)

输出:

cat
kiwi
dog

答案 2 :(得分:0)

针对我的第一个答案的评论。设置一个键,然后使用排序。更多内容:https://www.programiz.com/python-programming/methods/built-in/sorted

检查示例3。它定义了一个自定义排序功能,并将其传递给键标志:

# take second element for sort
def takeSecond(elem):
    return elem[1]

# random list
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

# sort list with key
sortedList = sorted(random, key=takeSecond)

答案 3 :(得分:0)

此代码段将打印列表中按第三个字符排序的值。这是使用lambda函数进行出价的示例。请记住,排序是一种潜在的破坏性功能。如果要保留原始列表,则应将其包含在复制列表功能中。

(loop for an ele in (sort '("cat" "kiwi" "dog")
                          #'(lambda (x y) (char-lessp (elt x 2) (elt y 2))))
      do (print ele))