(Python)有人可以帮助解释这行代码吗?

时间:2018-03-02 06:55:15

标签: python

check = {v: [j for j, p in enumerate(expression) if p == v] for v in var}

在这种情况下,expression是一个字符串,var是一个列表。我无法理解这里发生的事情,如果有人能提供帮助,那将非常有帮助!

2 个答案:

答案 0 :(得分:2)

这将创建一个字典。 键是列表var的元素。 与键关联的对象将是包含字符串位置的列表,这些字符串在字符串expression

中用作键

示例:

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

会导致字典

check={'e' : [1] , 'l' : [2,3]}

因为' e'在#hello'中处于第二位置和' l'在第三和第四位置(注意enumerate从0开始计数。)

答案 1 :(得分:0)

将表达式分为两部分:

part1:{v:f(v)for v in var} result是一个代表每个v in的dict         var及其f(v)

第2部分:def f(v):           如果p == v,则返回[j表示j,p表示枚举(表达式)        这部分只返回字符串表达式中与v

类似的char列表