Как мне запустить список через функцию в Python? - PullRequest
0 голосов
/ 14 октября 2018

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

Температура в F:

temp_f =  [19, 21, 21, 21, 23]

Функция:

def fahrToCelsius(tempFahrenheit):
    return (tempFahrenheit - 32) /1.8 

Функция работает, например,

fahrToCelsius(temp_f[1])

дает:

-6.111111111111111

Но запуск его выполняется без списка.Моя попытка:

temp_c = []

for i in temp_f:
    temp_c.append (fahrToCelsius(temp_f[i]))

print(temp_c)

Выдает эту ошибку:

IndexError: список индексов выходит за пределы диапазона

Я пробовал несколько разных вещей, ноничего, что я пробовал, не работает.Есть ли у вас какие-либо советы?Спасибо.

Ответы [ 4 ]

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

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

import numpy as np
Lis= np.array([30,40,50])
def fahrToCelsius(tempFahrenheit):
    return (tempFahrenheit - 32) /1.8
print(fahrToCelsius(Lis))
0 голосов
/ 14 октября 2018

Итерирование списка с помощью for i in temp_f делает i в этом контексте ссылкой на каждый элемент в вашем списке.

Что вы хотите сделать, это итерировать список индексы вместо этого, какfor i in range(len(temp_f)).

Кроме того, вы можете перебирать элементы списка, как вы это делали, но передавать i в качестве параметра fahrToCelsius (вместо temp_f[i]).

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

Наиболее питонное решение - использовать понимание списка:

temp_c = [fahrToCelsius(t) for t in temp_f]
0 голосов
/ 14 октября 2018

for i in temp_f фактически присваивает i каждому элементу в вашем массиве, то есть 19, 21 и т. Д. Следовательно, temp_f[i] на самом деле temp_f[19], поэтому вы получаете ошибку.Измените цикл на:

for i in range(0, len(temp_f)):
    temp_c.append (fahrToCelsius(temp_f[i]))

или вместо:

for temp in temp_f:
    temp_c.append (fahrToCelsius(temp))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...