需要重新排序列表并在python

时间:2015-07-01 18:22:24

标签: python python-2.7 sorting alphabetical sentence

我需要帮助按字母顺序重新排列此列表

list= ['z', 'a', 'b', 'y', 'c', 'x', 'd', 'w', 'e', 'v', 'f', 'g', 'u', 'h', 'i', 'j', 't' ,'k', 'l', 's', 'm', 'n', 'r', 'o', 'p', 'q', ' ']

通过索引到数组中进入“hello world”。我到底该怎么做?我是初学者,我在python 2.7中这样做。

2 个答案:

答案 0 :(得分:0)

如前所述,您的列表可以使用sort()函数按字母顺序排序,如下所示:

mylist = ['z', 'a', 'b', 'y', 'c', 'x', 'd', 'w', 'e', 'v', 'f', 'g', 'u', 'h', 'i', 'j', 't' ,'k', 'l', 's', 'm', 'n', 'r', 'o', 'p', 'q', ' ']
mylist.sort()
print mylist

这会使您的列表看起来像:

[' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

但你继续说'索引到'为了'hello world'。如果您的意思是想要创建一个简单的密码,那么可以通过以下方式轻松实现:

import string

s_from = 'abcdefghijklmnopqrstuvwxyz '
s_to = 'zabycxdwevfguhijtklsmnropq '
cypher_table = string.maketrans(s_from, s_to)
print "hello world".translate(cypher_table)

这会将您的文字转换如下:

wcggi rikgy

请你编辑你的问题,举例说明你想要实现的目标。

答案 1 :(得分:0)

由于列表中有空元素。您可以尝试使用列表的排序方法

来避免它们
>>> sorted(list_alphabet, key=list_alphabet.remove(' '))
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

sorted会创建实际列表的新副本并对其进行排序。因此,您可以将sorted的输出引用到新变量。像

>>> sorted_list_alphabet = sorted(list_alphabet, key=list_alphabet.remove(' '))
>>> sorted_list_alphabet
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

PS:不要使用list作为变量名,因为它会在实际列表和列表变量之间产生冲突