创建按字符串中出现的列表列表

时间:2017-12-13 12:56:57

标签: python list

我的任务是从我的大列表中列出一个列表,并根据该大列表的一个元素中字符串的出现将它们分开。

这是我的清单的开头,很多次会出现'对话#' -
我想把这个大清单拆分成列表,这样每个人都会用

加注

'对话框#'

然后将包含所有字符串,直到出现“dialog#”的另一个出现,这将开始构建另一个列表。

然后我想迭代从一个大清单创建的所有列表。

我对Python有一些经验,但这超出了我的水平......

谢谢大家!

2 个答案:

答案 0 :(得分:0)

source_list = ['dialog #', 'a', 'b', 'dialog #', ... ]
new_list = []
begin = 0
local_list = []
for item in source_list:
    if item == 'dialog #':
        if begin == 0:
            local_list.append(item)
            begin = 1
        else:
            new_list.append(local_list)
            local_list = [item]
    else:
        local_list.append(item)
new_list.append(local_list)

我不检查......

答案 1 :(得分:0)

def split_list(input_list, delimiter):

    result_list = []

    while len(input_list) > 0:

        elem = input_list.pop(0)

        if elem == delimiter:

            if 'sub_list' in locals():
                result_list.append(sub_list)

            sub_list = [elem]

        elif len(input_list) == 0:

            sub_list.append(elem)
            result_list.append(sub_list)

        else:

            sub_list.append(elem)

    return result_list

测试:

test_data = ['dialog #', 'foo', 'bar', 'dialog #', 'baz', 'zaz']

split_list(test_data, 'dialog #')
  

[['dialog#','foo','bar'],['dialog#','baz','zaz']]