试图弄清楚Python代码

时间:2013-05-08 06:41:41

标签: python list dictionary

我对我在网上发现的Python代码的逻辑有一个问题,它可以很好地从成对格式的列表中定义一个字典(即:"one 1/n two 2/n three 3/n")代码是:

dict_number= {term:int(score) for (term,score) in list_number}

List_number是保存值的列表,我不确定我是否理解Python如何理解每个字符串应该作为术语分配,并且每个作为一个值(在这种情况下,该字符串的int)...在这行代码之前没有定义术语和分数,并且某种程度上python设法理解这一点......任何想法如何工作?

1 个答案:

答案 0 :(得分:3)

这称为dictionary comprehension,并在Python 2.7中引入。它是使用表达式创建字典的简便方法。

写这一行的更长的方法是:

dict_number = {}  # an empty dictionary

for term,score in list_number:
    dict_number[term] = int(score)

在Python中,没有变量可以用于其他语言。在大多数其他语言中,变量是一个“盒子”,可以保存特定类型的值。要在框中保存内容,首先必须通过描述类型来创建框:

int x;
x = 1;

Python具有指向值的名称概念。 python中的“变量”只是一个名称,它可以指向任何类型的任何值。只有值具有类型,名称没有类型。由于这种灵活性,名称不必提前“初始化”。您只需在需要时使用它们;而Python将负责其余部分。