如何展开Python列表中逗号分隔元素并同步对应列表?
拆分Python列表中的逗号分隔元素并同步复制对应成本
问题场景
你有两个Python列表,其中grocery_list部分元素是逗号分隔的字符串,需要将这些元素拆分为独立项,同时让grocery_cost中对应位置的成本值按拆分后的元素数量复制,最终得到结构一致的两个列表。
原数据:
grocery_list = ["apple", "whole milk, skim milk, 2% milk", "american cheese, cheddar cheese"] grocery_cost = [10.5, 4.50, 2.40]
解决方案
可以通过遍历+字符串拆分的方式实现,代码如下:
# 初始化新列表 new_grocery_list = [] new_grocery_cost = [] # 同时遍历商品列表和成本列表 for item, price in zip(grocery_list, grocery_cost): # 拆分逗号分隔的商品项,去除每个子项的前后空格 split_items = [sub_item.strip() for sub_item in item.split(',')] # 将拆分后的商品项加入新列表 new_grocery_list.extend(split_items) # 按拆分后的数量复制对应成本,加入新成本列表 new_grocery_cost.extend([price] * len(split_items)) # 输出结果 print(f"grocery_list = {new_grocery_list}") print(f"grocery_cost = {new_grocery_cost}")
运行结果
grocery_list = ['apple', 'whole milk', 'skim milk', '2% milk', 'american cheese', 'cheddar cheese'] grocery_cost = [10.5, 4.5, 4.5, 4.5, 2.4, 2.4]
代码说明
- 使用
zip()函数同时遍历两个列表的对应元素,确保商品和成本一一对应 split(',')将逗号分隔的字符串拆分为子列表,strip()去除子项前后的空格,避免出现多余空白extend()方法将拆分后的子项批量添加到新列表,[price] * len(split_items)实现成本值的批量复制
内容的提问来源于stack exchange,提问作者magladde
相关产品推荐
相关产品推荐

