Скажите, что я создал кортеж, как это, используя массив байт:Как преобразовать кортеж в float в python?
import struct
a = struct.unpack('f', 'helo')
Как я теперь преобразовать a
в поплавок? Есть идеи?
Скажите, что я создал кортеж, как это, используя массив байт:Как преобразовать кортеж в float в python?
import struct
a = struct.unpack('f', 'helo')
Как я теперь преобразовать a
в поплавок? Есть идеи?
struct.unpack
всегда возвращает кортеж, потому что вы можете распаковать несколько значений, а не только один.
Кортеж представляет собой последовательность, точно так же, как список или любую другую последовательность. Таким образом, вы можете индексировать его:
>>> a = struct.unpack('f', 'helo')
>>> b = a[0]
>>> b
7.316105495173273e+28
... или назначение использования распаковка:
>>> b, = a
>>> b
7.316105495173273e+28
... или петля над ним:
>>> for b in a:
... print(b)
7.316105495173273e+28
И, конечно, вы можете комбинировать любые из тех, кто в одна строка:
>>> b = struct.unpack('f', 'helo')[0]
>>> b, = struct.unpack('f', 'helo')
>>> c = [b*b for b in struct.unpack('f', 'helo')]
Если t его не очевидно для вас, вы должны прочитать Lists, More on Lists и Tuples and Sequences в уроке.
Вы, вероятно, могли бы сделать это:
a = a[0]
Это уже поплавок; это гарантируется с помощью символа формата '' f'' в 'struct.unpack'. Поэтому вызов 'float' не делает ничего полезного. – abarnert
Ну, да, но 'a = a [0]' также делает это. Вы также можете написать 'a = float (a [int (0)]', пока вы на нем. – abarnert
о, вы правы, спасибо. Я неправильно понял, что вы сказали. – Totem
'a' является 1-кортеж со значением флоат ... получить значение ... –