Python 看到特定元素时,将列表拆分为两个列表
假设我有一个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
'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'],[]
?