【发布时间】:2015-02-20 19:05:59
【问题描述】:
我正在使用列表推导来查找 PyTable 中的特定数据集。但是,当尝试与来自 argparser 的参数结合时,它不会返回任何值。
下面是这段代码:
if args.Scount:
print args.Scount, args.Scount[0], args.Scount[1]
print
print [row['GRBname'] for row in table.iterrows() if args.Scount[0] <= row['SCounts'] <= args.Scount[1]]
print
print [row['GRBname'] for row in table.iterrows() if 0 <= row['SCounts'] <= 10]
args.Scount 来自哪里:
parser.add_argument("--Scount", nargs=2, help="Used to display GRBs within the specified spectral count range")
例如,如果我给 --Scount 0 和 10:
第一行打印 ['0', '10'] 0 10(这只是一个检查 args 是否有值的测试)
第二行打印[]
第三行打印一个列表,其中包含row['Scount'] 条件内选定的row['GRBname']。
如果我切换回标准循环结构,我会得到相同的结果,尽管搜索 pytable、argparse 和列表理解文档并没有帮助我解决这个特定问题。
【问题讨论】:
-
您的具体问题是什么?您的观察让我们感到高兴,但您想知道什么?
-
table.iterrows() 看起来像一个迭代器,它可能会被第二次调用耗尽?