Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 看到特定元素时,将列表拆分为两个列表_Python_List_Split - Fatal编程技术网

Python 看到特定元素时,将列表拆分为两个列表

Python 看到特定元素时,将列表拆分为两个列表,python,list,split,Python,List,Split,假设我有一个Python列表。每当我在列表中遇到'a'时,我应该将列表分成两个列表,并将'a'放在第一个列表的末尾或第二个列表的开头。我如何继续这样做,直到我有几个列表,每个列表最多出现一次'a' 这是我的尝试。它能工作,但很难看 input_list = [0, 1, 'a', 'b', 'c', 2] partitioned_list = [] temp_list =[] for item in input_list: temp_list.append(item) if

假设我有一个Python列表。每当我在列表中遇到
'a'
时,我应该将列表分成两个列表,并将
'a'
放在第一个列表的末尾或第二个列表的开头。我如何继续这样做,直到我有几个列表,每个列表最多出现一次
'a'

这是我的尝试。它能工作,但很难看

input_list = [0, 1, 'a', 'b', 'c', 2]
partitioned_list = []
temp_list =[]
for item in input_list:
     temp_list.append(item)
     if item == 'a':
         partitioned_list.append(temp_list)
         temp_list = []
partitioned_list.append(temp_list)

我得到了上面给出的
输入列表的输出
[[0,1,a'],['b',c',2]

我希望我能理解您想要的:

input_list = [0, 1, 'a', 'b', 'c', 2, 'a', 21, 'c', 'a', 'a','b','a']
partitioned_lists = []
start = 0
for index, item in enumerate(input_list):
    if item == 'a':
        partitioned_lists.append(input_list[start:index+1])
        start = index + 1
    
if start != len(input_list):
    partitioned_lists.append(input_list[start:])
print(partitioned_lists)

要求太多了。显示您尝试过的代码,并在PostOk中包含示例输入和预期输出,很快就会完成。非常感谢。所以对于一个空的输入列表,你想要的是
[[]]
而不是
[]
?@superbrain,我其实没有想过,但我永远不会有一个空列表,所以这没关系。理想情况下,最好使用
[]
而不是
[[]]
。关于你下面的评论,这是一个很好的观点。我的代码给了我一个恼人的空列表,我可以不用它。对于
[0,1,'a']
你想要
[[0,1,'a'],[]