从列表中搜索字符串以存储在列表中

时间:2017-10-25 20:52:19

标签: python python-2.7

我存储了列表中的频道列表。我想在匹配的字符串中搜索列表中的频道,看看我是否可以获取最多7个频道。

示例:当我的变量channel显示102 BBC Two时,我想要抓取102 BBC Two103 ITV104 Channel105 Channel,{{列表中有1}},106 Sky One107 Sky Living,因此我可以将某些内容存储在108 Sky Atlantic列表中。

以下是代码:

channels_list

以下是元素列表:

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']

channel = "102 BBC Two"
channels_list = list()
#Store the 7 selected channels in the channels_list

你能否告诉我一个例子,我如何在列表中找到匹配的频道,以便我可以获取7个频道存储在['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'] 列表中?

1 个答案:

答案 0 :(得分:1)

使用enumerate跟踪索引,然后只比较位置。

for i, start_ch in enumerate(self.channel):
    if start_ch == channel:
        return self.channel[i:i+7]

找到正确的起点后,将起始索引的切片返回到起始索引+7。