我的代码需要一些帮助。我想检查一下,如果self.channels_index
的值不大于或等于self.channel
,那么我可以从列表中获取该元素。如果该值大于self.channel
值,则不要做任何事情。
当我尝试这个时:
self.channels_Index += 1
for index in enumerate(self.channel):
if index > self.channels_Index:
new_channel = self.channel[self.channels_Index]
我将收到一个错误:IndexError:列表索引超出范围。
此行突出显示错误:
new_channel = self.channel[self.channels_Index]
列表中的最后一个元素后面没有值。
以下是self.channel
列表:
['101 BBC One S East', '102 BBC Two', '103 ITV', '104 Channel 4', '105 Channel 5', '106 Sky One', '107 Sky Living', '108 Sky Atlantic', '401 Sky Sports 1 UK', '402 SKY Sports 2 UK', '403 Sky Sports 3 UK', '404 Sky Sports 4 UK', '405 Sky Sports 5 UK', '406 Sky Sports News HQ', '407 Sky Sports F1', '408 Sky Sports 1 HD', '409 Sky Sports 2 HD', '410 Sky Sports 3 HD', '411 Sky Sports 4 HD', '412 Sky Sports 5 HD', '413 Eurosport 1 UK', '414 Eurosport 2 UK', '415 BT Sport 1', '416 BT Sport 2', '417 At the Races', '418 BT Sport ESPN', '419 MUTV', '420 Chelsea TV', '421 Eir Sport 1', '422 Eir Sport 2']
我期望实现的是我使用self.channels_index
添加值并检查self.channel
值,以便我可以使用该值获取元素,直到我可以从中获取最后一个元素列表是422 Eir Sport 2
你能告诉我一个例子,我可以使用self.channels_index
检查self.channel
值,看看如果值等于或不大于最后一个值,那么我可以获取元素直到我可以从列表中获取最后一个元素?
答案 0 :(得分:1)
enumerate()
返回索引和值列表。观察:
>>> L = ['hi', 'hello', 'hey']
>>> list(enumerate(L))
[(0, 'hi'), (1, 'hello'), (2, 'hey')]
您需要修改代码以通过在for循环中包含两个变量来反映这一点:
for index, val in enumerate(self.channel):
if index > self.channels_Index:
new_channel = val