繁体   English   中英

您如何在循环之外获取列表?

[英]How do you get the list outside of the loop?

我正在使用python脚本从数据库中提取数据。

我想获得for index in range循环中for index in range之外的变量channel一些帮助。

当我尝试这个:

    for row in cur:
        channels = row[0].encode('ascii')
        channelList.append(channels)

    for index in range(0, CHANNELS_PER_PAGE):
        channel = channelList[index]

        print channel
        #get the programs list
        cur.execute('SELECT channel, title, start_date, stop_date FROM 
programs WHERE channel=?', [channel])
        programs = cur.fetchall()
        start_pos = 368    # indent for first program
        for row in programs:
            title = row[1].encode('ascii')

如果我使用上面的代码for index in range循环中for index in range打印通道,我将得到以下信息:

23:32:03 T:1164  NOTICE: 101 ABC FAMILY
23:32:03 T:1164  NOTICE: 102 CBS
23:32:03 T:1164  NOTICE: 103 CNN USA
23:32:03 T:1164  NOTICE: 105 ESPN USA
23:32:03 T:1164  NOTICE: 106 Fox News
23:32:03 T:1164  NOTICE: 107 Animal Planet
23:32:03 T:1164  NOTICE: 108 USA Network

所以当我尝试这个:

    for row in cur:
        channels = row[0].encode('ascii')
        channelList.append(channels)

    for index in range(0, CHANNELS_PER_PAGE):
        channel = channelList[index]

    print channel
    #get the programs list
    cur.execute('SELECT channel, title, start_date, stop_date FROM programs 
WHERE channel=?', [channel])
    programs = cur.fetchall()
    start_pos = 368    # indent for first program
    for row in programs:
        title = row[1].encode('ascii')

如果我在循环外使用print channel ,则会得到以下信息:

23:30:09 T:5828  NOTICE: 108 USA Network

我想将循环for row in programs: for index in range循环的for index in range之外,使用可变channel以防止代码触发。

您如何使用通道列表来允许我为for index in range循环中的for index in range之外的每个通道打印?

在第一个程序中,为频道列表中的每个频道,打印其名称并从数据库中获取程序。 但是,在第二个程序中,您删除了缩进。 这将导致您的程序仅打印并提取通道列表中的最后一个通道。

使用程序的逻辑,尽管可以使用一些列表推导并完成操作,但不应将程序中的for row in programs from index in range的外部from index in range删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM