【发布时间】:2018-07-20 14:15:08
【问题描述】:
header = ['chr', 'pos', 'ms01e_PI', 'ms01e_PG_al', 'ms02g_PI', 'ms02g_PG_al', 'ms03g_PI', 'ms03g_PG_al', 'ms04h_PI', 'ms04h_PG_al']
我想将上述列表元素转换为元组列表。喜欢:
sample_list = [('ms01e_PI', 'ms01e_PG_al'), ('ms02g_PI', 'ms02g_PG_al'),
'ms03g_PI', 'ms03g_PG_al'), ('ms04h_PI', 'ms04h_PG_al')]
我认为 lambda 或列表推导可用于以简短而全面的方式解决此问题。
sample_list = [lambda (x,y): x = a if '_PI' in a for a in header ..]
或者,
[(x, y) if '_PI' and '_PG_al' in a for a in header]
有什么建议吗?
【问题讨论】:
-
似乎你想要成对的连续元素。如果是这样,这是
zip()的完美用例:首先删除前两个元素:header = header[2:],然后执行zip(header[::2], header[1::2])。另请参阅:Understanding python's slice notation.
标签: python list lambda tuples list-comprehension