【问题标题】:Python Error: int object is not subscriptable [closed]Python错误:int对象不可下标[关闭]
【发布时间】:2017-04-15 08:28:52
【问题描述】:

我目前正在处理两个 CSV 文件。基本上,我的目标是从 CSV 文件的第三列中获取值,前提是第一列与名称匹配,并且第二列与日期匹配(将从开始日期到结束日期的所有内容)。我一直在测试如何做到这一点,但我并没有完全得到答案,因为我一直收到同样的错误。

这是我目前的尝试:

name = "Art"
for line in all_words_csv:
    if(line[0] == name):
        for line in range(1900, 1908):
            print(line[2])

目前在 Python 3.5 中

谢谢。

编辑:我希望这篇文章能向我展示第 3 列中的所有值,但数字太大而无法实现:

for line in all_words_csv:
if(line[0] == name):
    for line[1] in range(1900, 1908):
        print(line[2])

【问题讨论】:

  • for line in range(1900, 1908):... 我认为您不想将此值命名为 line(它会覆盖 line in all_words_csv
  • 明白了。现在它是有道理的。抱歉,还在搞 Python

标签: python file csv python-3.5


【解决方案1】:

您用年份范围覆盖了 line 值。

没有看到你的文件,我认为你会这样做

name = "Art"
for line in all_words_csv:
    if(line[0] == name):
        for year in range(1900, 1908):
            if str(year) == line[2]:
                print(line[2])

或者可能

name = "Art"
for line in all_words_csv:
    if(line[0] == name):
        if line[2] in map(str, range(1900, 1908))
            print(line[2])

【讨论】:

  • 有趣。但是,例如,如果我这样做如何: for line in all_words_csv: if(line[0] == name): for line[1] in range(1900, 1908): print(line[2])跨度>
  • 我不认为line[1] in range 是有效的语法
猜你喜欢
  • 1970-01-01
  • 2012-04-04
  • 2012-01-03
  • 2020-12-10
  • 2013-02-07
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多