是否有一种将列表(可迭代)拆分为两部分的调用方法?

时间:2017-11-15 20:50:42

标签: python python-3.x

是否有内置或Pythonic方式来执行此操作?或许我的问题应该是:在这个问题的最后是否有更好的方法来编写字典理解示例?

def split_list(list, index):
    return list[:index], list[index:]

我发现自己需要在列表推导中执行此操作,我从某些生成器获取列表并希望将列表拆分为两部分。例如,文本文件如下:

txt_file = """key1 value value value value
key2 value value value value
"""
import io
{k:v
 for line in io.StringIO(txt_file)
 for items in (line.strip().split(),)
 for k, v in ((items[0], items[1:]),)}

输出:

{'key1': ['value', 'value', 'value', 'value'],
 'key2': ['value', 'value', 'value', 'value']}

1 个答案:

答案 0 :(得分:1)

我唯一的评论是,你理解的最后for没有真正的理由。

{items[0]:items[1:]
 for line in io.StringIO(txt_file)
 for items in (line.strip().split(),)}

我不知道"更好"将列表分成两部分的方法。