Как передать значения из списка в Tkinter в массив, а затем добавить значения вместе? - PullRequest
2 голосов
/ 26 октября 2019

Позвольте мне заявить, что я новичок в использовании этого языка. но я прогрессирую благодаря многим чтениям, сделанным онлайн. Я создаю небольшую программу для облегчения работы в офисе.

Проблема, которую я не могу решить сейчас, заключается в следующем: из базы данных, с помощью поиска, я могу извлечь числовые данныечто я вижу в списке. Я хотел бы поместить эти данные, представленные в списке, в массив, а затем с помощью нативной функции Python "SUM" получить результат. Это мое намерение.

Но я не могу. Вот код:

def Calcola_Isi_dovuto():
    lista = list(dovutolist.get(0,END))
    print(lista)
    dovuto = arr.array('d',lista)
    print(dovuto)
    somma = sum(dovuto)
    print(somma)

И ошибки:

usr/bin/python3.6 /media/diakrufus/Maxtor/xxxxxx/xx.py
[('1322.20',), ('1322.80',)]
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.6/tkinter/__init__.py", line 1705, in __call__
return self.func(*args)
File "/media/diakrufus/Maxtor/xxxxxxxxxxxx/xxxxx.py", line 1185, in 
Calcola_Isi_dovuto
dovuto = arr.array('d',lista)
TypeError: must be real number, not tuple

1 Ответ

0 голосов
/ 26 октября 2019

Как видно из вывода print(lista), в качестве вывода вы получили список кортежей ([('1322.20',), ('1322.80',)]).

Ожидается, что из выходных данных будет передан список чисел, поэтому для их суммирования можно использовать обходной путь, например:

dovuto = arr.array('d',[float(l[0]) for l in lista])

Последняя часть - это понимание списка, где мысделал список [1322.20, 1322.80] (l[0] здесь означает первый элемент каждого подэлемента).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...