我需要帮助按字母顺序重新排列此列表
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中这样做。
答案 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作为变量名,因为它会在实际列表和列表变量之间产生冲突