Python 范围内的字符串无效

Python 范围内的字符串无效,python,int,range,Python,Int,Range,我是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'对象不可订阅” 你如何解决这个问题 谢谢大家! 您可以更简单地迭代列表中的每个对象,就像您试图做的那

我是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'对象不可订阅”

你如何解决这个问题


谢谢大家!

您可以更简单地迭代列表中的每个对象,就像您试图做的那样

my_hanes = ['Blue', 'Red', 'Grey', 'Black']
for hanes in my_hanes:
    print hanes

这将打印列表中的每个项目
my\u hanes

您可以更简单地迭代列表中的每个对象,就像您尝试做的那样

my_hanes = ['Blue', 'Red', 'Grey', 'Black']
for hanes in my_hanes:
    print hanes

这将打印列表中的每个项目
my\u hanes
您需要
print(my\u hanes[h])
而不是
print(my\u hanes\u len[h])
您需要
print(my\u hanes[h])
而不是
print(my\u hanes\u len[h])
您的代码的问题是my\u 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)

代码的问题是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)

因为您正试图使用
my\u hanes\u len
访问您的列表。我认为您实际上想要使用
my\u hanes
。因为您正试图使用
my\u hanes\u len
访问您的列表。我认为您实际上想要使用
my_hanes
。Python中的列表可以通过索引访问,而且它们也是可排序的-只是首选直接迭代。您的代码是正确的,但是你的解释完全偏离了目标。删除了这一部分-记不起我把哪个对象与不可排序的列表混淆了..集合和字典是无序的,而不是不可排序的。Python中的列表可以通过索引访问,它们也是可排序的-只是首选直接迭代。你的代码是正确的,但是你的解释完全偏离了目标。删除了那部分-记不起我把哪个对象与不可排序的列表混淆了..集合和字典是无序的,而不是不可排序的。作为python约定的说明,通常情况下,如果没有明确需要索引,则最好迭代列表中的项,而不是索引迭代。作为python约定的说明,如果没有明确需要索引,则通常最好迭代列表中的项,而不是索引迭代。