双循环

时间:2015-10-09 20:45:32

标签: python python-3.x for-loop twitter

我正在抓住推特热门话题,并想做三个单独的讨论:

1。)Geo
2.)使用Hashtags
3.)没有Hashtags

所以我表面上需要一个双循环,但复杂性使其变得困难

这就是我所拥有的:

i = 0
locations = [23424977,2459115, 2487956]
onoff = [1,2]
for location in locations:
    for switch in onoff:
         i += 1
         if i < 4:
             trends1 = api.trends_place(location,include='hashtags')
         if i >=4:
             trends1 = api.trends_place(location,exclude='hashtags')
         print(trends1)

所以我希望最终每个geo pull都有两组与之相关的趋势主题(带有主题标签的关键字和没有主题标签的关键字)。但是,这似乎并没有起作用,因为它没有遍历这些位置。注意:问题不是覆盖变量(因为变量在每个循环结束时打印)而是覆盖for循环的顺序。

EDIT 所以在我的脑海里,for循环应该遵循这个进展:

Geo 1 - hashtag
Geo 2 - Hashtag
Geo 3 - Hashtag
Geo 1 - No hashtag
Geo 2 - No Hashtag
Geo 3 - No Hashtag

2 个答案:

答案 0 :(得分:1)

我认为你不需要开关和i:

locations = [23424977,2459115, 2487956]
onoff = [1,2]
for switch in onoff:
    for location in locations:
        if onoff == 1:
             trends1 = api.trends_place(location,include='hashtags')
        else:
             trends1 = api.trends_place(location,exclude='hashtags')
        print(trends1)

答案 1 :(得分:-1)

简单易用的解决方案 - 我的原始代码具有for循环的顺序。由于i变量在循环的每次迭代时更新为+1,因此前三个循环具有主题标签,因为i <3(因为“开关”循环迭代通过第一个元素并且位置循环迭代通过三个地理),而在第三个循环之后(其中循环的“开关”现在迭代通过第二个元素并且位置循环迭代通过三个地理)i> = 4.

i = 0
locations = [23424977,2459115, 2487956]
onoff = [1,2]
for switch in onoff:
    for location in locations:

     i += 1
     if i < 4:
         trends1 = api.trends_place(location,include='hashtags')
     if i >=4:
         trends1 = api.trends_place(location,exclude='hashtags')