排序函数及其键值面临的问题

时间:2019-05-18 22:21:37

标签: python

任何人都可以解释以下我试图找出的代码。

order = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1357902468'
print(*sorted(input(), key=order.index), sep='')

*的作用是什么?这段代码如何排列给定字符串的顺序?

4 个答案:

答案 0 :(得分:1)

列表前的星号会解开列表。 假设您有一个这样的列表:

lst = ['string1', 'string2', 'string3']

,然后要打印它。但是将其打印为列表将输出:

print(lst)
# ['string1', 'string2', 'string3']

如果要输出不带括号的内容,则可以尝试以下操作:

print(lst[0], lst[1], lst[2])

这不是一个优雅的解决方案,对吗?这意味着您希望将字符串列表转换为“字符串内容”,您可以将其作为打印参数传递。这就是列表解压缩的作用:

print(*lst)
# string1 string2 string3

添加分隔符将删除空格:

print(*lst, sep='')
# string1string2string3'

答案 1 :(得分:0)

在python中,*用于扩展列表。例如,以下函数接受任意数量的参数:

def func(*args):
    print(args)

后面的代码段将打印my_list的所有元素,并用空格隔开:

my_list = ['a', 'b', 'c']
print(*my_list)
# a b c

答案 2 :(得分:0)

它将列表解压缩。如果您只是使用

print(sorted("123"))

Python将打印['1','2','3']。但是,当您使用

print(*sorted("123"))

Python看到print('1','2','3')并打印出来而不是列表。

答案 3 :(得分:0)

使用的<li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">System <b class="caret"></b></a> <ul class="dropdown-menu"> <li>@Html.ActionLink("Html Editor", "Index", "HtmlEditor")</li> <li>@Html.ActionLink("App Settings", "Index", "AppCommon")</li> <li>@Html.ActionLink("Image Slider Photos", "ParkingImageSlider", "ReservMain")</li> <li>@Html.ActionLink("Settings for Reservations Page", "AppSettingsWebPage", "ReservMain")</li> </ul> 是一个可迭代的拆包运算符,它使用值列表,并将它们作为字符串返回。相当于*的一种。由于函数"".join(list)具有列表作为返回类型,因此出于我们的目的,我们需要将其显式转换为字符串。

sorted()
  • sorted()函数通过*sorted(input(), key=order.index), sep='' 接受用户输入。

  • 提供了自定义键功能,以自定义关键字的排序顺序 功能。即现在字符将在
    中排序 input()个 订单。

  • abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1357902468去除字符串中的所有空格(是其中的一部分)。