我正在抓住推特热门话题,并想做三个单独的讨论:
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
答案 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')