#python #int #range
#python #int #диапазон
Вопрос:
Я новичок в Python. Я борюсь с диапазоном. Я не умею объяснять эту проблему, но я покажу вам проблему.
Вот мой код:
my_hanes = ['Blue', 'Red', 'Grey', 'Black']
my_hanes_len = len(my_hanes)
for h in range(0, my_hanes_len):
print(my_hanes_len[h])
Каждый раз появляется всплывающее сообщение с надписью «объект ‘int’ не подлежит подписке»
Как вы решаете эту проблему?
Спасибо!
Комментарии:
1. Потому что вы пытаетесь получить доступ к своему списку с помощью
my_hanes_len
. Я думаю, вы действительно хотите использоватьmy_hanes
.
Ответ №1:
Вам нужно print(my_hanes[h])
вместо print(my_hanes_len[h])
.
Ответ №2:
Вы можете выполнить итерацию по каждому объекту списка более просто, как вы пытаетесь сделать
my_hanes = ['Blue', 'Red', 'Grey', 'Black']
for hanes in my_hanes:
print hanes
Это приведет к печати каждого элемента в списке my_hanes
.
Комментарии:
1. Списки в Python доступны через индексы , и они также поддаются сортировке — просто предпочтительнее прямая итерация. Ваш код правильный, но ваше объяснение полностью не соответствует цели.
2. Удалена эта часть — не могу вспомнить, какой объект я перепутал со списками, которые невозможно отсортировать..
3. Наборы и словари неупорядочены , не подлежат сортировке.
Ответ №3:
Проблема с вашим кодом заключается в том, что my_hanes представляет собой массив строк. Итак, len(my_hanes) — это целочисленное значение (4), указывающее длину вашего массива (он же список python). Если вы хотите получить длину каждого элемента my_hanes в виде списка, вы можете выполнить итерацию, чтобы создать один:
my_hanes = ['Blue', 'Red', 'Grey', 'Black']
my_hanes_len = list()
for hanes in my_hanes:
my_hanes_len.append(len(hanes))
print(my_hanes_len)
Комментарии:
1. В качестве примечания к соглашениям python, также обычно предпочтительнее перебирать элементы в списке, как показано, а не выполнять итерацию индекса, если индекс явно не требуется.