Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将简单循环转换为列表理解_Python_Python 3.x - Fatal编程技术网

Python 将简单循环转换为列表理解

Python 将简单循环转换为列表理解,python,python-3.x,Python,Python 3.x,为什么第一个“标题”列表不起作用,但第二个却起作用?我如何使第一个工作? 谢谢大家! 突出显示的\u诗歌=“后像:奥德雷·洛德:1997年,《影子:威廉·卡洛斯·威廉姆斯:1915年》、《狂喜:加布里拉·米斯特拉尔:1925年》、《乔治亚州黄昏:让·图默:1923年》、《黎明前的离别:安琪:2014年》、《难以言表的需要:沃尔特·惠特曼:1871年》、《格鲁普尔邓普的歌:谢尔·西尔弗斯坦:2004年》、《天使之声墨西哥城:卡门·布卢萨:2013年》、《恋爱:卡马拉·苏莱亚:1965年》,”,梦的

为什么第一个“标题”列表不起作用,但第二个却起作用?我如何使第一个工作? 谢谢大家!

突出显示的\u诗歌=“后像:奥德雷·洛德:1997年,《影子:威廉·卡洛斯·威廉姆斯:1915年》、《狂喜:加布里拉·米斯特拉尔:1925年》、《乔治亚州黄昏:让·图默:1923年》、《黎明前的离别:安琪:2014年》、《难以言表的需要:沃尔特·惠特曼:1871年》、《格鲁普尔邓普的歌:谢尔·西尔弗斯坦:2004年》、《天使之声墨西哥城:卡门·布卢萨:2013年》、《恋爱:卡马拉·苏莱亚:1965年》,”,梦的变奏:兰斯顿·休斯:1994,梦之木:阿德里安·里奇:1987”
突出显示的诗歌列表=突出显示的诗歌。拆分(',')
突出显示的\u诗歌\u剥离=[line.strip()用于突出显示的\u诗歌\u列表中的行]
突出显示的诗篇详细信息=[突出显示的诗篇中的行的行分割(':')]
打印(突出显示的\u诗歌\u细节)
打印()
打印()
打印()
打印(突出显示的\u诗歌\u细节[1][1])
titles=[titles.append(title[0]),用于突出显示的\u诗歌\u细节中的标题[0]
#诗人=[诗人[1]。在突出显示的诗\u细节中为诗人添加()
#dates=[date[2]。为突出显示的\u\u详细信息中的日期追加()
对于突出显示的\u诗歌\u细节中的标题:
titles.append(title[0])
印刷品(标题)

处理列表理解时,必须先阅读
后面的表达式,然后阅读第一部分:

titles = [title[0] for title in highlighted_poems_details]
          ^------^     ^--------------------------------^
              |                            |
       the information              iteration over 
       you want to add              your data
       to your new list
因此,您可以这样阅读:
对于诗歌细节中的每个标题,将标题[0]添加到列表中
正确:

titles = [title[0] for title in highlighted_poems_details]
您不是在理解列表中添加任何内容,而是在定义它。

或使用:

from operator import itemgetter
titles = list(map(itemgetter(0), highlighted_poems_details))

为什么不起作用?因为在使用
title[0]
时使用了未定义变量
title
,请参见下面的标记

titles = [titles.append(title[0]) for title[0] in highlighted_poems_details]
------------------------^^^^^^^-------^^^^^^^------------------------------
如Relandom所建议的,您可以使用

titles = [title[0] for title in highlighted_poems_details]
删除
append
-->
titles=[title[0]用于突出显示的\u poems\u详细信息中的标题]