我已经获得了channels_list
中的元素列表,我希望从列表101 BBC One S East
中找到接下来的7个频道,以便我可以提前接下来的7个频道。
示例:我有101 BBC One S East
,因此我想找到它是'108 Sky Atlantic'
的7个频道,因此我可以从那里开始获取接下来的7个频道'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'
。
以下是代码:
channels_list = ['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']
find_channel = '101 BBC One S East'
for i, start_ch in enumerate(self.channel):
if start_ch == channel:
channels_list = self.channel
你能告诉我一个如何从列表中找到7个频道的例子,这样我可以使用值来获取接下来的7个频道吗?
编辑:这是:
self.channels_Index += 7
for i, start_ch in enumerate(self.channel):
if start_ch == channel:
my_seven_channels = self.channel[i+self.channels_Index:i+14]
答案 0 :(得分:1)
要做到这一点,首先需要确保您的代码使用这些值。我将假设他们在将代码移植到Stack Overflow时丢失了,但以防万一......确保这些更改。
channels_list
,但您的枚举尝试枚举self.channel
。修复它。 find_channel
变量。 现在关于真正的问题:
枚举保存项目的索引及其值,因此一旦找到所需的项目,就会告诉列表“从此索引中获取项目...到此索引+ 7以上”。为此,我们使用[from:to]对其进行切片。
代码:
channels_list = ['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']
find_channel = '101 BBC One S East'
for i, start_ch in enumerate(channels_list):
if start_ch == find_channel:
my_seven_channels = channels_list[i:i+7]
print(my_seven_channels)
更新:重新阅读您的问题后,我认为您让我们想要获得接下来的7个项目,但您希望跳过接下来的7个项目。
my_seven_channels = channels_list[i+7:i+14]
更新2:似乎对i
的含义感到困惑,所以让我澄清一下。我只是我们分配给索引的名称。下一个代码首先跳过7个项目,然后使用find_channel
变量作为起始点获取接下来的14个项目。
for channel_index, start_ch in enumerate(channels_list):
if start_ch == find_channel:
my_seven_channels = channels_list[channel_index+7:channel_index + 21]