【发布时间】:2017-12-29 01:05:20
【问题描述】:
这里是 Python 初学者。我有一个列表列表,我试图根据 mylist[x][0] 中的值进行过滤,并为每个结果子列表添加一个索引值。鉴于以下列表理解:
shortlist = [[x, mylist[x]] for x in range(1,20) if mylist[x][0] == 'TypeB']
我得到以下输出:
[[11, ['TypeB', 'Kline', '', '', 'Category']],
[12, ['TypeB', '', '[Aa]bc', '', 'Category3']],
[13, ['TypeB', '', '[Z]bc', '', 'Category']],
[14, ['TypeB', '', 'Kline', '[Aa]bc', 'Category4']],
[15, ['TypeB', '', '', '[Z]bc', 'Category']],
[16, ['TypeB', '', '', 'Kline', 'Category5']],
[17, ['TypeB', '[Aa]bc', '', '', 'Category']],
[18, ['TypeB', '[Z]bc', '', '', 'Category2']],
[19, ['TypeB', 'Kline', '', '', 'Category']]]
这会创建一个子列表,我想我需要用更多的代码行以某种方式解压缩,但如果我可以纠正列表理解,我宁愿不这样做。我的目标是阅读第一“行”
[[11, 'TypeB', 'Kline', '', '', 'Category'],
...和其余的输出效仿。我的尝试
shortlist = [x, mylist[x] for x in range(1,20) if mylist[x][0] == 'TypeB']
和
shortlist = [x for x in range(1,20) if mylist[x][0] == 'TypeB', mylist[x] for x in range(1,20) if mylist[x][0] == 'TypeB']
两者都给出语法错误。显然,我是列表理解的新手。我重视任何意见和指导。提前感谢您的宝贵时间。
【问题讨论】:
标签: python list list-comprehension