以下是我目前正在处理的列表清单的一小段内容。
[(datetime.datetime(2015, 7, 27, 17, 33, 1), 'derivative', 74L, 980750911L, 150.
49), (datetime.datetime(2015, 7, 27, 17, 33, 1), 'other', 211L, 2519735424L, 383
.99), (datetime.datetime(2015, 7, 27, 17, 33, 1), 'source', 9L, 68556768874L, 31
27.9)]
现在,我的最终游戏目标是遍历此列表列表以分隔值,以便我可以将它们写入excel文件。我的问题是价值观的分离。例如,我知道如何使用此
打印列表列表中每个值的所有值for x in data:
for x in x:
print x
执行后返回格式如此。
2014-06-28 21:50:54
source
27
14144158722
1425.26
现在,我如何在该返回中调用一个特定值,例如,如果我想创建一个if语句,如果x在其内容中有源,则只在列表列表中打印出x。我试图彻底解释这一点,准备提供任何澄清。
答案 0 :(得分:0)
首先,不要在内循环中重复使用名称x
;使用描述性名称。您可以在外部循环中测试包含:
for row in data:
if 'source' in row:
for column in row:
print column
您可能希望将此限制为特定列;你的每一行都有一个特定的结构,每一列都有一种类型的数据;第一列是日期,第二列是您要测试的字符串:
for row in data:
if row[1] == 'source':
for column in row:
print column
您可以将行解包成单独的变量:
for timestamp, type_, num1, num2, num3 in data:
if type_ == 'source':
print timestamp
print num1
print num2
print num3
答案 1 :(得分:0)
在迭代到内部列表之前创建if
语句,以便只在满足if
条件时进行迭代。
另外,你不应该这样做 - for x in x
,这很令人困惑。
示例 -
>>> data = [(datetime.datetime(2015, 7, 27, 17, 33, 1), 'derivative', 74, 980750911, 150.49), (datetime.datetime(2015, 7, 27, 17, 33, 1), 'other', 211, 2519735424, 383.99), (datetime.datetime(2015, 7, 27, 17, 33, 1), 'source', 9, 68556768874, 3127.9)]
>>> for x in data:
... if 'source' in x:
... for y in x:
... print y
...
2015-07-27 17:33:01
source
9
68556768874
3127.9