使用枚举

时间:2014-03-10 20:40:39

标签: 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列表中?如果我能使这件作品完成,我的任务应该很容易。

1 个答案:

答案 0 :(得分:2)

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

我认为你对enumerate的作用感到困惑。事实上,你根本不需要它。它的作用是给你一个索引以及你要枚举的东西的值。因此,在这种情况下,您将进行第一次迭代0加上第一行,然后是第二行,依此类推。由于您没有使用索引,因此您不想使用枚举。