python - 使用枚举

标签 python enumerate

所以我最近几天才开始使用 python,除了 5 年前的一些基本编码知识外什么都没有。 我恋爱了。

我正在导入一个 .csv,其中包含按 dyad 排序的历史联盟...因此每个联盟都有一个特殊编号。同一个国家的文件中还有更多。 我试图让用户提供一个国家和日期,并能够返回他们当年结盟的国家。 这是一行数据。

6 200 United Kingdom 255 Germany 1 1 1816 31 10 1822 1 0 1 0 0  1 0
6 200 United Kingdom 300 Austria-Hungary 1 1 1816 31 10 1822 1 0 1 0 0 1 0

第一个数字是二元数,然后是国家代码和国家,国家代码和国家,联盟开始日,月,年,结束日,月,年。 最后一部分并不重要。

import csv
name='United Kingdom'
diad = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
with open('list.csv') as inputfile:
    r = list(csv.reader(inputfile))
    for i, j in enumerate(r):
         if j == name:
              diad[0]=name
          print "true"
              diad.insert(0, name)

我运行它但什么也没得到,所以 if 语句不正确...... 我不明白怎么回事。您正在查看前两行数据,不应该枚举找到“英国”的任何实例并将找到的内容插入到 diad 列表中吗?如果我能让这件作品发挥作用,我的任务应该很容易。

最佳答案

遍历 CSV 是遍历,而不是列。所以在每次迭代中,j 是一个列列表。然后,您还需要遍历 j 中的元素,以便与您的字符串进行比较。

我认为您对 enumerate 的作用感到困惑。事实上,你在这里根本不需要它。它的作用是为您提供一个索引以及您正在枚举的事物的值(value)。所以在这种情况下,您将在第一次迭代中获得 0 加第一行,然后 1 加第二行,依此类推。由于您没有使用索引,因此您不想使用枚举。

关于python - 使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310861/

相关文章:

python - 使用 Homebrew 安装 openCV 时遇到问题

Python 相当于 MATLAB 的 Legendre 函数

python - 在valueError循环中中断导致错误

linux - 在 Linux 中是否有枚举分配的堆 block 的标准方法?

python - 迭代字典(字典内)来总结排名

python - 如何检查列表中的所有整数是否连续?

python - 使用不同长度的 bool 系列从数据框中选择行

python - 在沙盒 Pypy 中使用套接字模块

python - 如何从 CSV 文件中提取目标行、前一行和后行?