Что такое csvitem в вашем примере?Исходя из вашего примера (и названия), я предполагаю, что это какая-то последовательность предметов.Например, ["a", "b", "c" .... "25", ...].
Однако в этом случае взятие фрагмента и использование in
немного обходятся- он извлекает список из одного элемента (например, ["25"] и проверяет членство. Вместо этого вы действительно должны сделать что-то вроде `if '25' == csvitem [63].
Другая ваша проблема -потому что тип данных элемента - строка, которая будет по-разному сравниваться с числами. Чтобы обработать элемент как число, сначала преобразуйте его в единицу с помощью функции int
. Например:
if int(csvitem[63]) <= 3:
hsa_id = '<4 hours'
Также, здесь, возможно, стоит отметить полезную особенность python: связывание операторов. В отличие от многих языков, вы можете проверить диапазон значений, используя синтаксис "lowerbound < value < upper_bound
" (используя соответствующее сравнение). Вы можете написать свой примеркак:
hours = int(csvitem[63])
if hours < 4:
hsa_id = "<4 hours"
elif 4 <= hours < 8:
hsa_id = "4-8 hours"
elif 8 <= hours < 16:
hsa_id = "8-16 hours"
elif 16 <= hours <= 24:
hsa_id = "16-24 hours"
else:
hsa_id = ">24 hours"