(Python)有人能解释一下这行代码吗?

(Python)有人能解释一下这行代码吗?,python,Python,在本例中,expression是一个字符串,var是一个列表。我很难理解这里发生了什么,如果有人能帮助我,那将是非常有帮助的 将表达式分为两部分: 第1部分:{v:f(v)for v in var}result是一个dict,表示var中的每个v var及其f(v) 第2部分:def f(v): 如果p==v,则在枚举(表达式)中返回[j代表j,p] 这部分只返回字符串表达式中与v类似的字符列表,这将创建一个字典。 键是列表var的元素。 与键关联的对象将是包含字符串位置的列表,这些字符串在字符

在本例中,
expression
是一个字符串,
var
是一个列表。我很难理解这里发生了什么,如果有人能帮助我,那将是非常有帮助的

将表达式分为两部分:

第1部分:{v:f(v)for v in var}result是一个dict,表示var中的每个v var及其f(v)

第2部分:def f(v): 如果p==v,则在枚举(表达式)中返回[j代表j,p]

这部分只返回字符串表达式中与v类似的字符列表,这将创建一个字典。 键是列表
var
的元素。 与键关联的对象将是包含字符串位置的列表,这些字符串在字符串
表达式中用作键

例如:

check = {v: [j for j, p in enumerate(expression) if p == v] for v in var}
会导致口授

var=['e','l']
expression=['hello']

由于“e”在“hello”中位于第二位,“l”在第三和第四位(请注意,
enumerate
从0开始计数)。

这是一个字典理解,其值为列表理解。它创建一个包含列表值的字典。
check={'e' : [1] , 'l' : [2,3]}