我尝试了下面的代码,但到目前为止还不起作用,它说我不能
names = ['John Johnson Doe', 'Jane Janis Doe']
firstnames = []
for name in names:
firstnames.append(names[name].split(' ')[0])
print(firstnames)
我在这里遇到的错误是:
TypeError: list indices must be integers or slices, not str
Tags:
您可以直接创建
firstnames
然后
python解释器cleary抛出的TypeError异常表示您试图使用
str
对象作为列表中的索引。这意味着变量name
是程序中的str
。我想你是假设它是一个int
Python for语句按顺序迭代序列的成员,每次执行块(for循环下的代码)
循环变量
name
将在每次迭代中引用列表names
中的一个对象。它不包含序列中对象的索引我假设您想要列表中每个字符串的名字
names
。下面是你应该如何使用list comprehensions但是,我也修改了您的代码。试试这个:
产出:
如果您仍然需要
indexes
,那么您可以查看enumerate,尝试以下方法:变量
name
包含列表names
的内容,而不是索引。所以在第一次迭代name = 'John Johnson Doe'
中,您试图使用它作为names
的索引,也就是说,您正在做names['John Johnson Doe']
只需在
name
而不是names[name]
上进行拆分,所有操作都将正常工作相关问题 更多 >
编程相关推荐