如何检查python中

时间:2017-10-31 00:02:18

标签: python python-2.7 list indexing

我的代码需要一些帮助。我想检查一下,如果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值,看看如果值等于或不大于最后一个值,那么我可以获取元素直到我可以从列表中获取最后一个元素?

1 个答案:

答案 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