2016-12-07 71 views
1

我希望能够索引一个多行字符串,如下面的hangman,根据字数不正确选择正确的字符串。当我使用下面的代码它不索引正确的数字,我不知道为什么。谢谢。正确索引字符串列表

a=list({ 

''' 
    | 
    O 
    \| 


''', 

''' 
    | 
    O 
    \|/ 
    | 

''', 

''' 
    | 
    O 
    \|/ 
    | 
    /
''', 

''' 
    | 
    O 
    \|/ 
    | 
    /\ 
''' 
}); 

for i in range(4): 
    print(a[i]) 

输出:

 | 
    O 
    \|/ 
    | 



    | 
    O 
    \|/ 




    | 
    O 
    \|/ 
    | 
    /

    | 
    O 
    \|/ 
    | 
    /
+0

您可以将列表变成字典并添加一个'订单'字段。或者,您总是可以根据字符串中的非空格字符数进行排序。 – SarTheFirst

+0

您可以从一个无序的集合中构建一个列表。去掉花括号:'a = [“...”,...]'。 –

回答

4

如果你想保留顺序,不要使用{}符号,因为这将创建一个从根本上无序的容器(无论是setdict -in你的情况下, set)。然后将其转换为list,但已经失效的时间太晚了。

相反,只是说:

a = [ 
    """" 
    first string 
    """, 
    # ... 
] 

方括号表示一个list,这是一个有序的容器。

1
a=[ 

''' 
    | 
    O 
    \| 


''', 

''' 
    | 
    O 
    \|/ 
    | 

''', 

''' 
    | 
    O 
    \|/ 
    | 
    /
''', 

''' 
    | 
    O 
    \|/ 
    | 
    /\\ 
''' 
] 

for i in range(4): 
    print(a[i]) 
+0

谢谢,其他人解释这就是为什么我也在这里接受他的,但很好的答案 – Rik

+0

不客气。注意最后一步:\\ – Marvo