所以我最近几天才开始使用 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/