Как удалить строку » из значений списка словаря python?

#python #dictionary

Вопрос:

Функция loadInventory со строковым именем файла в качестве параметра считывает содержимое из inventory.txt

 def loadInventory(filename):
    inventory = {}
    inventoryFile = open(filename)
    for line in inventoryFile:
        itemID,itemStock = line.split(":")
        inventory[itemID] = itemStock
        inventory = {itemID: itemStock for itemID, itemStock in inventory.items()}
        inventory[itemID] = [itemStock.replace('n', '')]
    
    # print(f"{inventory}")
    return inventory

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

Inventory.txt:

 C05:10,10,5,4
C01:0,20,10,5
C11:10,20,10,1
C03:0,0,10,0
C10:1,1,1,1
 

Выход:

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

Предполагаемый Результат:

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

Ответ №1:

Попробуйте заменить эту строку:

         inventory[itemID] = [itemStock.replace('n', '')]
 

Для:

         inventory[itemID] = [int(i) for i in itemStock.replace('n', '').split(',')]
 

Или:

         inventory[itemID] = list(map(int, itemStock.replace('n', '').split(',')]))