【发布时间】:2014-03-10 20:40:39
【问题描述】:
所以我最近几天才开始使用 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
第一个数字是 dyad num,然后是国家代码和国家,国家代码和国家,联盟开始日,月,年,结束日,月,年。 最后的部分并不重要。
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 语句不正确...... 我不明白怎么做。您正在查看前两行数据,不应该枚举 find 任何“United Kingdom”实例并将它找到的内容插入到 diad 列表中吗?如果我能完成这件作品,我的任务应该很容易。
【问题讨论】:
-
Python 使用空格来表示代码块。确保你是一致的。通常首选使用四个空格作为缩进,并且从不使用制表符。您似乎正在使用
print行上的选项卡 -
不知道为什么会这样,我会编辑它。
-
如果我没看错... r 是一整行。你想要
enumerate(r.split())...