#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(',')]))