Вы хотите, чтобы массив numpy отображался в виде текста и включал индексы.
Следующий код должен решить вашу проблему:
windspeed2 = np.array([3.8, 3.9, 4.0, 4.1]) # this is just for testing. don't copy this line :)
windspeed2_head = windspeed2[:10] # take the first 10 elements
windspeed2_readable = '\n'.join([f"index {i}: {w}" for i, w in enumerate(windspeed2_head)])
print(windspeed2_readable)
#speedbox.insert(tk.END, windspeed2_readable)
Чтобы быть легко воспроизводимым, я добавил print
оператор, в котором вы бы поместили speedbox.insert(tk.END, windspeed2_readable)
.
Итак, что мы здесь делаем? С помощью оператора enumerate
мы можем добавлять индексы к любой итерации. Посмотрите этот пример:
>>> print(list(enumerate("hello")))
[(0, 'h'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')]
Чтобы получить windspeed2_readable
, мы перебираем перечисленные значения в windspeed2_head
. Мы назначаем текущий индекс на i
и соответствующую скорость ветра на w
. Теперь мы конвертируем эти две переменные в строку, используя f-строку: f"index {i}: {w}"
.
В конце эта часть
>>> [f"index {i}: {w}" for i, w in enumerate(windspeed2_head)]
['index 0: 3.8', 'index 1: 3.9', 'index 2: 4.0', 'index 3: 4.1']
предоставляет нам список строк. Теперь нам нужно просто присоединить их к символу новой строки '\n'
в качестве разделителя.