当我将一个列表替换为另一个列表时,出现问题

时间:2017-05-26 19:47:17

标签: python list file

我正在完成一项必须制作Hangman游戏的作业。我刚从头开始使用我的基本知识。很多事情可能以不同的方式更有效率,但我喜欢搞清楚我自己的解决方案。所以这是我的代码。我的想法是我想从一个列表切换到另一个列表。但是,当我执行其余的代码失败时,它在以前工作的地方。

import random
alphabet = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')                 

allwords = []                                                                               

with open('google-10000-english-usa-no-swears-long.txt') as inputfile:
    for line in inputfile:
        allwords.append(line.strip().split(','))
words = ['apple', 'banana', 'coconut']                                                                  

word = random.choice(words)                                                                 

guessesleft = 8                                                                             
sentence1 = ('You have %d guesses!\n') % guessesleft                                        

length = len(word)                                          
uslist = ['_'] * length                                                                     

hangword = list(word)                   

问题如下:在代码中,当前的单词'使用,这是有效的。但是,现在不是使用'单词'作为一个单词列表,我想使用文本文件和' allwords'作为单词列表(所以我在word = random.choice(allwords)中更改了单词= random.choice(单词)。它确实从文件中选择了一个随机单词,但之后出错了。每个单词只生成on& #39; _'而不是随机选择的单词中的每个字母都有1个。我的列表是否有所不同?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你有没有理由使用拆分功能?

allwords.append(line.strip().split(','))

split()函数返回由分隔符分隔的项目列表,因此即使在没有分隔符的字符串中,该函数也会返回一个列表

"helloworld".split(",")   # returns ["helloworld"]

如果您只想要拆分后的第一个元素,可以使用:

allwords.append(line.strip().split(',')[0])