【发布时间】:2012-07-03 06:41:05
【问题描述】:
输入文件如下所示:
A 3.00 B 4.00 C 5.00 D 6.00
E 3.20 F 6.00 G 8.22
H 9.00
I 9.23 J 89.2
K 32.344
我希望这些字符成为字典中的键 而浮点数是值。
这是迄今为止我遇到的非工作失败。
def main():
#Input File
reader = open('candidate.txt', 'r'
my_dictionary = {}
i=0
for line in reader.readlines():
variable = line.split(' ')[i]
value = line.split(' ')[i+1]
my_dictionary[variable]= value
i+=2
print my_dictionary
if __name__ == '__main__':
main()
【问题讨论】:
-
想一想你的代码。
i每行增加 2,对吗?所以你从第 1 行得到第一对,从第 2 行得到第二对,依此类推,这显然不是你想要的,对吧?您需要两个嵌套的 for 循环,一个用于行,一个用于获取一行中的所有对(如果您想继续使用 for 循环 - 有更有效的选项,例如,请参阅 guettli 的答案)。 -
基本上,您需要成对地迭代列表中的项目(键、值)。这是一个显示不同技术的广泛答案:stackoverflow.com/questions/4628290/pairs-from-single-list - 我喜欢接受答案中的
pairwise函数。 -
@user1497892 请接受答案。或者添加 cmets 为什么答案不能解决您的问题。
标签: python file dictionary readline