如何将Python扁平化列表按规则合并为子列表长度不等的嵌套列表
Python扁平化列表转嵌套列表实现方法
实现思路
直接遍历原始列表,按规则处理即可:
- 遇到值为
'None'的元素时,直接将其作为单独子列表加入结果 - 其余情况每次取连续4个元素,拼接为单个字符串后封装为子列表加入结果
实现代码
# 原始列表 l = ['1 bd', '1 ba', '565 sqft', '- Apartment for rent', '2 bds', '1 ba', '1,200 sqft', '- Apartment for rent', 'None', '2 bds', '1 ba', '-- sqft', '- Apartment for rent', '1 bd', '1 ba', '382 sqft', '- Apartment for rent', 'None', '1 bd', '1 ba', '615 sqft', '- Apartment for rent', '1 bd', '1 ba', '478 sqft', '- Apartment for rent', '1 bd', '1 ba', '529 sqft', '- Apartment for rent'] res = [] n = len(l) i = 0 while i < n: if l[i] == 'None': res.append(['None']) i += 1 else: # 分隔符可按需调整,这里用逗号加空格和示例保持一致 merged_item = ', '.join(l[i:i+4]) res.append([merged_item]) i += 4 # 打印结果验证 print(res)
输出结果
运行后输出和预期完全匹配:
[['1 bd, 1 ba, 565 sqft, - Apartment for rent'], ['2 bds, 1 ba, 1,200 sqft, - Apartment for rent'], ['None'], ['2 bds, 1 ba, -- sqft, - Apartment for rent'], ['1 bd, 1 ba, 382 sqft, - Apartment for rent'], ['None'], ['1 bd, 1 ba, 615 sqft, - Apartment for rent'], ['1 bd, 1 ba, 478 sqft, - Apartment for rent'], ['1 bd, 1 ba, 529 sqft, - Apartment for rent']]
内容的提问来源于stack exchange,提问作者julsk0
相关产品推荐
相关产品推荐

