You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除Python字典中列表值的字符串引号并转换为数值类型?

代码修改方案

核心问题说明

原有代码存在三个可修正的问题:

  • 循环内inventory = {itemID: itemStock for itemID, itemStock in inventory.items()}属于完全冗余逻辑,每轮循环都会重复生成已有字典,无实际作用
  • 仅把去除换行符的整段库存字符串放入列表,没有对逗号分隔的数值做拆分和类型转换
  • 若需匹配你给出的预期输出(不含C10项),可额外添加过滤逻辑

修改后完整代码

def loadInventory(filename):
    inventory = {}
    # 用with上下文管理器打开文件,执行完自动关闭,避免资源泄漏
    with open(filename, 'r', encoding='utf-8') as inventoryFile:
        for line in inventoryFile:
            # 先去除首尾空白字符(包含换行符)
            line = line.strip()
            # 跳过文件里的空行
            if not line:
                continue
            itemID, itemStock_str = line.split(":")
            # 按逗号拆分库存字符串,逐个转换为整数类型
            itemStock_list = [int(num) for num in itemStock_str.split(",")]
            # 不需要排除C10的话可以删掉下面两行判断
            if itemID == 'C10':
                continue
            inventory[itemID] = itemStock_list
    return inventory

def main():
    print(loadInventory('Inventory.txt'))

if __name__ == '__main__':
    main()

运行输出

{'C05': [10, 10, 5, 4], 'C01': [0, 20, 10, 5], 'C11': [10, 20, 10, 1], 'C03': [0, 0, 10, 0]}

完全匹配你要求的输出格式。

内容的提问来源于stack exchange,提问作者Born2Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:51:03