【发布时间】:2020-03-04 16:36:06
【问题描述】:
所以我已经为此绞尽脑汁了一段时间,并决定联系你们这些优秀的人。我试图弄清楚的问题是如何以特定顺序打印列表中的项目。我有一个清单:
m= ['dog','cat','horse','cow','woof','meow','neigh','moo']
我想让我的结果看起来像这样:
'The dog goes woof'
'The cat goes meow'
'The horse goes neigh'
'The cow goes moo'
到目前为止,我已经尝试了以下代码:
m= ['dog','cat','horse','cow','woof','meow','neigh','moo']
for i in m[:4]:
print('The ' + i + ' goes ' + str(x for x in m[4:]))
我的结果是:
'The dog goes <generator object <genexpr> at 0x01177C70>'
'The cat goes <generator object <genexpr> at 0x01177C70>'
'The horse goes <generator object <genexpr> at 0x01177C70>'
'The cow goes <generator object <genexpr> at 0x01177C70>'
现在我发现“x”语句只返回一个“无”值,这就是为什么我没有得到我想要的结果。谁能给我一些见解?任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您似乎已经知道如何以所需的顺序打印元素(如动物名称所示)。您的问题是您将元素包装到生成器中 - 为什么要这样做?你认为
str(x for x in m[4:])是什么意思?另外,您有什么理由将动物和声音存储在m中,而不是将它们分成两个列表或使用dict从动物映射到声音? -
宫城先生您好。在这种情况下,我对生成器的理解是有限的......因此我接触了社区。我没有创建两个列表的原因是因为我想看看如何在特定的列表中打印元素命令。我在 'm[]' 中使用这些词的唯一原因是因为它们对人们有意义。我很感激和反馈。谢谢。