【问题标题】:How to use all the numbers in a range of a for loop in python? [closed]如何在python中使用for循环范围内的所有数字? [关闭]
【发布时间】:2019-03-17 09:02:13
【问题描述】:

我正在尝试打印一组推文的位置。 这是一个包含十个字典的列表。我希望显示所有十个的位置。当我使用范围时,它只需要一个值。 tweets 是包含十个字典的列表。 statuses 是键,geo 是具有推文坐标的对象。

for j in range (0,9):
    st1 = tweets[j]['statuses'][j]['geo']
print(j,st1)

【问题讨论】:

  • 不清楚您的问题是什么。您可以分享您的字典列表示例吗?
  • 不确定我是否理解正确,但也许enumerate 可以提供帮助。
  • 似乎打印在 for 循环之外(它的缩进应该与上一行的缩进匹配)。
  • 谢谢,缩进错了。
  • 我不完全确定您到底想要完成什么。您是否在询问如何进行反向查找地理坐标-> 位置?或者您在打印地理坐标时遇到问题?在这种情况下:您使用j 两次,这会导致您在statuses 的第十个条目中查找第十条推文,这看起来可能不是您真正想要的(除了缩进问题 - 我只是假设代码示例中可能缺少一些空格)

标签: python for-loop range geo tweets


【解决方案1】:

如果您有一个包含 10 个具有您所描述结构的词典的列表,我会这样做

for i,d in enumerate(tweets):
    print(i, d['statuses']['geo']

【讨论】:

    【解决方案2】:

    您的打印语句超出了 for 循环。你必须这样写:

    for j in range (0,9):
        st1 = tweets[j]['statuses'][j]['geo']
        print(j,st1)
    

    更新: 我认为,您想显示所有推文和所有状态。在这种情况下,您必须使用嵌套的 for 循环,例如:

    for j in range(0, 9):
        for i in range(len(tweets[j]['statuses'])):
            st1 = tweets[j]['statuses'][i]['geo']
            print(j, i, st1)
    

    经过一些优化后,它看起来像(如果您不需要索引):

    for tweet in tweets:
        for status in tweet['statuses']:
            st1 = status['geo']
            print(st1)
    

    【讨论】:

    • 我已经想出了显示状态,但一直坚持要显示所有状态。这有帮助。谢谢。
    【解决方案3】:

    缩进错误。

    for j in range (0,10):
       st1 = tweets[j]['statuses'][j]['geo']
       print(j,st1)
    

    这解决了它。

    【讨论】:

    • 我在回答中告诉过你的)
    • 是的,谢谢。 :)
    猜你喜欢
    • 2019-07-01
    • 1970-01-01
    • 2022-12-16
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2017-08-05
    • 2020-10-18
    相关资源
    最近更新 更多