当前位置:  开发笔记 > 编程语言 > 正文

TypeError:list indices必须是整数,而不是str Python

如何解决《TypeError:listindices必须是整数,而不是strPython》经验,为你挑选了2个好方法。

list[s]是一个字符串.为什么这不起作用?

出现以下错误:

TypeError:list indices必须是整数,而不是str

list = ['abc', 'def']
map_list = []

for s in list:
  t = (list[s], 1)
  map_list.append(t)

NPE.. 12

迭代列表时,循环变量接收实际的列表元素,而不是它们的索引.因此,在您的示例中s是一个字符串(首先abc,然后def).

看起来你要做的事情基本上是这样的:

orig_list = ['abc', 'def']
map_list = [(el, 1) for el in orig_list]

这是使用名为list comprehension的Python构造.



1> NPE..:

迭代列表时,循环变量接收实际的列表元素,而不是它们的索引.因此,在您的示例中s是一个字符串(首先abc,然后def).

看起来你要做的事情基本上是这样的:

orig_list = ['abc', 'def']
map_list = [(el, 1) for el in orig_list]

这是使用名为list comprehension的Python构造.



2> Ujjwal..:

不要将名称list用于列表.我用过mylist下面的.

for s in mylist:
    t = (mylist[s], 1)

for s in mylist:分配的元件mylist,以ss发生在第二次迭代中在第一次迭代的值"ABC"和"DEF".因此,s不能用作索引mylist[s].

相反,只需:

for s in lists:
    t = (s, 1)
    map_list.append(t)
print map_list
#[('abc', 1), ('def', 1)]

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有