为什么不打印?

时间:2015-02-13 15:21:35

标签: python-3.x

这是我的代码:

wordlist = ['cat','dog','rabbit'] 

letterlist = [ ]
>>> print ( [letterlist.append(letter) for word in wordlist for letter in word if letter not in letterlist])

这是输出:

>>> [None, None, None, None, None, None, None, None, None]

为什么不打印出来:

>>> ['c', 'a', 't', 'd', 'o', 'g', 'r', 'b', 'i']

谢谢。

2 个答案:

答案 0 :(得分:1)

嗯,append方法返回None。它只修改有问题的列表。 这将有效:

wordlist = ['cat','dog','rabbit']

letterlist = [ ]

for word in wordlist:
  for letter in word:
    if letter not in letterlist:
      letterlist.append(letter)

print(letterlist)

答案 1 :(得分:0)

将程序更改为:

wordlist = ['cat','dog','rabbit']
letterlist = []
letterlist = [letter for word in wordlist for letter in word if letter not in letterlist]
print (letterlist)

说明:

您可能会注意到,我们无需自己调用appendlist-comprehension进程本身通过隐式附加返回一个列表。

我已将list-comprehansionprint声明分开,以便更清晰。

阅读有关列表理解的更多信息,以便在将来的应用程序中使用它。它会

  1. 节省您的时间
  2. 减少代码行
  3. 帮助您了解其他人的代码正在做什么
  4. 希望这有帮助。