Как превратить последовательности в последовательность? - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в Python и не могу понять это.Вот мой код:

salesFile = input("Enter sales file name: ")
totalFiles = input("Enter name for total sales file: ")

salesFileOpen = open(salesFile, "r")
sales = salesFileOpen.readlines()

for line in sales:
    newLine = (line.strip().split(" "))

for number in newLine:
    totals = float(newLine[number]) + float(newLine[number])
print(newLine)
print(totals)

Файл, который я ввожу как salesFile, выглядит как

['$1120.47', '$944.42']
['$72.29', '$588.23']
['$371.21', '$2183.84']

Мне нужно добавить каждое значение в горизонтальные строки и получить общее количество для каждой строки,Чтобы сделать это, я попытался сделать

totals = float(newLine[number]) + float(newLine[number])

Это возвращает как ошибку, говоря это:

totals = float(newLine[number]) + float(newLine[number])
TypeError: list indices must be integers or slices, not str"

Есть идеи?

1 Ответ

0 голосов
/ 24 октября 2018

Вы видите ошибку, потому что перебираете список строк, так что число на самом деле является строкой, а индексация по строке не имеет смысла.Нет нужды индексировать.

Заменить

for number in newLine:
    totals = float(newLine[number]) + float(newLine[number])

на:

for number in newLine:
    totals = float(number[1:]) + float(number[1:])

Обернуть вещи вместе:

for i, line in enumerate(sales):
    newLine = (line.strip().split(" "))

    total = 0
    for number in newLine:
        total += float(number[1:]) 

    print 'Total for line # {} is: {}'.format(i + 1,  total)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...