Python列表习惯用法列表
data2['C']是一个如下所示的列表:Python列表习惯用法列表,python,Python,data2['C']是一个如下所示的列表: [['20120524', '26.31'], ['20120523', '26.08'], ['20120522', '26.52'], ['20120521', '25.75']] 我想编写一段代码,可以在d['C'][I][0]之间迭代,并找到与特定值(存储为YYYYMMDD的日期)对应的列表索引。我仍然觉得Python的for循环习惯用法令人困惑,我想澄清为什么第一块代码无效,而第二块代码有效。另外,如果有一个内置Python函数可以执行我描
[['20120524', '26.31'], ['20120523', '26.08'], ['20120522', '26.52'], ['20120521', '25.75']]
我想编写一段代码,可以在d['C'][I][0]之间迭代,并找到与特定值(存储为YYYYMMDD的日期)对应的列表索引。我仍然觉得Python的for循环习惯用法令人困惑,我想澄清为什么第一块代码无效,而第二块代码有效。另外,如果有一个内置Python函数可以执行我描述的搜索过程,请与我们分享
不起作用:
>>> print data2['C'][i][0] for i in range(len(data2['C']))
File "<stdin>", line 1
print data2['C'][i][0] for i in range(len(data2['C']))
^
SyntaxError: invalid syntax
问题是第一个代码是错误的,但第二个代码是错误的迭代器。python中的是迭代器,因此,您可以执行以下操作:
for i in data2['C']:
print i[0]
或
for
可通过两种方式使用:在显式for
循环中(如第二个代码块)或在列表/目录/生成器中:
注意括号[]
表示列表、{}
-一个dict和()
中的表示一个生成器表达式
要使输出与第二个相同,请执行以下操作
print '\n'.join([str(data2['C'][i][0]) for i in range(len(data2['C']))])
甚至
print '\n'.join(str(data2['C'][i][0]) for i in range(len(data2['C'])))
这将是一个。“如果有一个内置的Python函数将…”如何:用于数据2中的s['C']:打印s[0]
?如果以后需要i
:用于枚举中的i,s(数据2['C']):打印i,s[0]
这根本不起作用。range()返回从0到len(X)-1(包括边框)的整数列表。在这种情况下,i[0]没有意义。
print [data2['C'][i][0] for i in range(len(data2['C']))]
print '\n'.join([str(data2['C'][i][0]) for i in range(len(data2['C']))])
print '\n'.join(str(data2['C'][i][0]) for i in range(len(data2['C'])))