访问python中字典列表中的元素

时间:2017-07-09 06:22:06

标签: python list dictionary

在每一个我都有字典列表的所有字典都是这样的:

 dict1 = {Label:----,Chapter:----,Section:----,Massage:----}
 dict2 = {Label:----,Chapter:----,Section:----,Massage:----}
 dict3 = {Label:----,Chapter:----,Section:----,Massage:----}
 List = [dict1 , dict2 , dict3]

如果我的标签与字典中的标签相同,我首先需要列表的所有字典打印该字典的按摩。

我使用这种方法,但什么都没有。

def printMassage(List , mylabel):
    for dicts in List:
        if (Label.value == mylabel):
            print( Massage.value)

请帮助我!!

3 个答案:

答案 0 :(得分:3)

python中的字典是如何工作的

value = dictionary[key]  # get the `value` of `key` in `dictionary`.
dictionary[key] = newvalue  # change the content of `key` in `dictionary` to `newvalue`.

你的例子

def printMassage(List , mylabel):
    for dict in List:
        if (dict["Label"] == mylabel):
            print(dict["Massage"])

答案 1 :(得分:1)

class A;
typedef void (*Callback) (int a);

class A
{
    public :
    void Print(int a)
    {
        std::cout<< a << std::endl;
    }

    Callback GetPrintMethod() //error cannot convert void(*) (int) to void(A::*) (int)
     {
         return &A::Print;
     }
};

int main()
{
    A* a(new A());
    Callback callback = a->GetPrintMethod(); 
    (*callback)(10);
}

答案 2 :(得分:0)

访问词典中的值时,您需要使用该键作为查找:

def printMassage(List , mylabel):
    for d in List:
        if d['Label'] == mylabel:
            print(d['Massage'])

单行:

def printMassage(List , mylabel):
    print([d['Massage'] for d in List if d[Label] == mylabel])