簡體   English   中英

返回函數的字典

[英]Return a dictionary of a function

我想定義一個函數,它將文本文件的表作為字典讀取,然后將其用於返回特定值。 鍵是化學符號(如氦的“He”,......)。 這些值返回其特定的原子質量。 我不明白,我該怎么辦...

文本文件的前五行內容如下:

H,1.008

他,4.0026

李,6.94

是,9.0122

乙,10.81

這是我的嘗試:(我不知道在哪里放置參數鍵以便我可以定義它)

def read_masses():
         atom_masses = {}
         with open["average_mass.csv") as f:
             for line in f:
             (key, value) = line.split(",")
             atom_masses[key] = value
             return(value)

m = read_masses("average_mass.csv)
print(m["N"])                          #for the mass of nitrogen   ```

一旦調用了 return,它下面的代碼就不會執行。 您需要返回的是atom_masses不是value ,您必須將其放在 for 循環之外

def read_masses(file):
    atom_masses = {}
    with open(file) as f:
        for line in f:
            (key, value) = line.split(",")
            atom_masses[key] = value
    
    return (atom_masses)

m = read_masses("average_mass.csv")
print(m["H"])
>>> 1.008

嘗試:

def read_masses(name):
    data = {}
    with open(name, "r") as f_in:
        for line in map(str.strip, f_in):
            if line == "":
                continue
            a, b = map(str.strip, line.split(",", maxsplit=1))
            data[a] = float(b)
    return data


m = read_masses("your_file.txt")
print(m.get("He"))

印刷:

4.0026

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM