cluster.append(
[x[0] for x in [[item[1] for item in Interest if term[0] == item[0]]
for cluster in ClusterFile for term in cluster[2]]
if len(x)]
)
cluster
# [['a'], [1, 2], [['w'], ['x'], ['y'], ['z']], [5, 6], ['qx12', 'qx19']]
数据:
cluster = [['a'], [1, 2], [['w'], ['x'], ['y'], ['z']], [5, 6]]
ClusterFile = [cluster]
Interest = [['w', 'qx12'], ['y', 'qx19']]
-
for a in b:
for x in a:
f(x)
[f(x) for a in b for x in a]
这似乎有点倒退,因为
x in a
离前面很远的语句在哪里
x
习惯了。把它想象成嵌套for循环的顺序(在原始代码中是反向的。)
-
你想要什么
cluster[2]
,不是
cluster[3]
-
在中选择单个图元时
簇[2]
['w']
,
['x']
列表
元素(
[“w”]
term
反对
一串
包含在那个列表中(
'w'
item[0]
. 不匹配,你需要
term[0]
相反。
-
附加的最终列表(
x[0]