我的代码需要一些帮助,我在尝试时遇到错误:
if int(pos_X) == 375:
data = prog_id
print data
index_get = int(prog_index)
for i in index_get:
#test = data[i]
print i
错误是跳到这一行:
for index in index_get:
错误:TypeError:'int'对象不可迭代
以下是index_get
的输出:
18:17:59 T:5172 NOTICE: [0, 1, 2, 3, 4, 5, 6]
这是我想要实现的目标:
18:17:59 T:5172 NOTICE: [0, 1, 3, 5, 6]
以下是代码:
program_index_ = list()
for elem in program_button:
progId.append(elem.getId())
posX.append(elem.getX())
posY.append(elem.getY())
progId = map(str, progId)
posX = map(str, posX)
posY = map(str, posY)
for channel in channels:
if stop_date is not None:
if start_time <> current_time < stop_time:
if current_program_length >= 30:
program_index = self.program_index
self.program_remaining = True
program_index_.append(program_index)
self.program_index += 1
if self.program_index == 7:
program_button = [elem.control for elem in self.program_buttons]
progId = list()
posX = list()
posY = list()
for elem in program_button:
progId.append(elem.getId())
posX.append(elem.getX())
posY.append(elem.getY())
progId = map(str, progId)
posX = map(str, posX)
posY = map(str, posY)
for pos_X, pos_Y, prog_id, prog_index in izip_longest(posX, posY, progId, program_index_, fillvalue=''):
data = prog_id
print data
index_get = int(prog_index)
for i in index_get:
#test = data[i]
print i
我试图使用索引从数组中获取字符串。 index_get
的类型是int。
你能告诉我如何修复错误吗?
答案 0 :(得分:1)
首先,python没有本机数组数据结构,它有列表。数组意味着一个固定长度的数据结构,例如你在Java或C中找到的数据结构。列表意味着一个可变长度的数据结构,例如你在这里使用的数据结构。
有许多方法可以从LIST获取字符串。
for str in prog_index:
print str
for i in range(len(prog_index)):
print prog_index[i]
for i in enumerate(prog_index):
print prog_index[i]
for i, j in enumerate(prog_index): #just for fun
print i, j
for i in xrange(len(lst)): #python3 we use xrange instead of range
print i
for str in prog_index:
print str
for i in range(len(prog_index)):
print prog_index[i]
for i in enumerate(prog_index):
print prog_index[i]
for i, j in enumerate(prog_index): #just for fun
print i, j
for i in xrange(len(lst)): #python3 we use xrange instead of range
print i
还有很多方法。利用python shell在它们很小的时候交互式地解决这些问题。当事情变得更加困难时,你会为办公桌保留几个凹痕。
答案 1 :(得分:0)
您将列表转换为int。 int不可迭代。
将for i in index_get:
更改为for i in prog_index:
如果你担心i
并不总是一个int,而是一个str,那就把它放在循环中。
for i in index_get:
test = data[int(i)]
print int(i)