在Python中创建字典+使用该字典

时间:2018-02-05 06:34:08

标签: python python-3.x dictionary

我对Python很陌生,我只想尝试一些基础知识。

我想知道是否有人可以告诉我如何执行以下任务。我有一个包含多行的文本文件,这些行如下:

name1, variable, variable, variable
name2, variable, variable, variable
name3, variable, variable, variable

我想将这些项目存储在字典中,以便轻松调用它们。我希望这个名字成为关键。然后我希望能够调用这样的变量:key [0]或key 1

我目前的代码不会这样做:

d = {}
with open("servers.txt") as f:
    for line in f:
       (key, val) = line.split()
       d[int(key)] = val

一旦完成,我希望能够从用户那里获取输入,然后检查数组以查看该项是否存在于数组中。我在Stackoverflow上发现了一些线程,但似乎没有一个我做的。

有一个类似问题here

您可以提供的任何帮助都会令人惊叹。我是新手,但我希望快速学习在不久的将来开始为自己做出贡献:)

干杯!

2 个答案:

答案 0 :(得分:0)

你快到了。假设.split()实际上正确地分割了行(如果值之间存在实际的逗号则不会这样做),您只需要一个额外的解包操作符(*):

d = {}
with open("servers.txt") as f:
    for line in f:
       key, *val = line.split() # first element -> key, rest -> val[0], val[1] etc.
       d[int(key)] = val

如果要检查用户输入的密钥是否存在,可以执行类似

的操作
ukey = int(input("Enter key number: "))
values = d.get(ukey)
if d is not None:
    # do something
else:
    print("That key doesn't exist.")

答案 1 :(得分:0)

假设您的文件my_file.csv如下所示:

name1, variable, variable, variable
name2, variable, variable, variable
name3, variable, variable, variable

使用pandas来完成工作:

import pandas as pd

result = pd.read_csv('my_file.csv', index_col=0, header=None)
print(result)

print(result.loc['name1'])

请注意,pandas是第三方库,您需要使用pip或easy_install工具进行安装。