typeerror:索引必须是整数不是str我怎么能res

2024-04-20 08:15:31 发布

您现在位置:Python中文网/ 问答频道 /正文

当我写代码的时候

for i in str_list:
    bin_list.append(codes[i]);
    bin=bin+codes[i];      

它说索引必须是整数而不是str。我想对str_list中的所有字符都这样做。你知道吗


Tags: 代码inforbin整数字符codeslist
2条回答
for i in str_list:

不会为字符串中的字符提供索引,而是将实际字符本身作为字符串提供索引。你需要的是这个

for i in xrange(len(str_list)):

现在,i将为您提供索引。阅读xrange

编辑有时,您可能需要索引以及与该索引对应的实际字符。而不是

for i in xrange(len(str_list)):
    str_list[i]

你可以使用enumerate

for index, char in enumerate(str_list):

python中的For循环提供值而不是指示符,如果需要索引,请执行以下操作:

for i, var in enumerate(str_list): ...

演示:

>>> h = "hello world"
>>> for i in h: print i
h
e
l
l
o

w
o
r
l
d

但是,使用enumerate

>>> for i, var in enumerate(h): print i
0
1
2
3
4
5
6
7
8
9
10

你可以得到索引。请注意,enumerate给您一个tuple。我的意思是:

>>> for var in enumerate(h): print var
(0, 'h')
(1, 'e')
(2, 'l')
(3, 'l')
(4, 'o')
(5, ' ')
(6, 'w')
(7, 'o')
(8, 'r')
(9, 'l')
(10, 'd')

所以,当我们说for i, var in ...时,我们把元组一分为二。第一个值,索引转到i,第二个值,var转到实际值。你知道吗

相关问题 更多 >