如何根据元素条件将Python列表拆分为多个列表?
如何按元素条件拆分Python列表
针对你给出的列表,需求是将以字符串(州名)开头的连续元素拆分为独立子列表,每个子列表从字符串开始,直到下一个字符串前结束。以下是实现代码:
myList = ['Georgia', 12344, 52353, 'Alabama', 352947, 394567, 123437, 'Florida', 992344, 788345] result = [] current_list = [] for item in myList: if isinstance(item, str): if current_list: result.append(current_list) current_list = [item] else: current_list.append(item) if current_list: result.append(current_list) # 拆分后赋值给对应的列表变量 list1, list2, list3 = result print(f"list1 = {list1}") print(f"list2 = {list2}") print(f"list3 = {list3}")
代码逻辑说明
- 用
result存储所有拆分完成的子列表,current_list临时存储正在构建的子列表 - 遍历原列表时,遇到字符串元素就结束当前子列表(如果已有内容),并新建子列表存入该字符串
- 遇到数字元素直接追加到当前子列表末尾
- 遍历结束后,别忘了把最后一个未存入
result的子列表加进去 - 最后可以通过解包将
result中的子列表分别赋值给list1、list2、list3,得到你期望的结果
内容的提问来源于stack exchange,提问作者PinAppleRedbull
相关产品推荐
相关产品推荐

