строка в диапазоне не работает

#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, также обычно предпочтительнее перебирать элементы в списке, как показано, а не выполнять итерацию индекса, если индекс явно не требуется.