学习单词简单程序

时间:2016-03-07 21:30:55

标签: python-3.x while-loop

我正在尝试创建一个程序,该程序从用户处获取单词,将它们放入列表中,然后打印用户输入的唯一单词数量。程序在收到空白输入时打印出唯一的单词。这就是我写的。

amount = []
nuword = input('Word: ')
while nuword != '':
  nuword = input('Word: ')
  if nuword in amount:
    amount.pop(-1)
  else:
    amount.append(nuword)
print('You know',len(amount), 'unique word(s)!')

是否有一种简单的方法可以打印列表中的所有唯一字词。喜欢某种功能?或者我必须在循环中改变一些东西吗?

2 个答案:

答案 0 :(得分:0)

counts = {}

nuword = 1
while nuword:
    nuword = input("Word: ")
    if nuword not in counts: counts[nuword] = 0
    counts[nuword] += 1

uniquewords = []
for word, count in counts.items():
    if count != 1: continue
    uniquewords.append(word)

答案 1 :(得分:0)

这是sets的理想候选者,与列表类似,但只包含一份内容。

示例集用法:

words = set()
words.add('apple')
words.add('bee')
words.add('apple')
print(words)
> {'apple', 'bee'}

以下是您稍微修改过的代码以使用集合

amount = set()
nuword = input('Word: ')
while nuword != '':
    nuword = input('Word: ')
    amount.add(nuword)
print('You know',len(amount), 'unique word(s)!')

我还建议考虑开始/尾随空格和大/小写的情况。现在,以下所有内容都算作自己的话

abc
 abc
abc  
aBc

(提示,第3个有尾随空格)我们将使用一些方便的方法来摆脱空白并转向小写。

' aBc   '.strip().lower()
> 'abc'

进行所有编辑:

amount = set()
nuword = input('Word: ')
while nuword != '':
    nuword = input('Word: ')
    amount.add(nuword.strip().lower())
print('You know',len(amount), 'unique word(s)!')
相关问题