我正在尝试优化一些代码来处理列表列表,我注意到,当我试图在列表中指定一个列表时,我总是在语法或输出方面遇到错误。在
我的代码在下面
out = []
for cluster in ClusterFile:
cluster = list(cluster)
for term in cluster[3]:
for item in Interest:
if term == item[0]:
x = [item[1]]
cluster.append(x)
break
out.append(cluster)
break
我的许多尝试之一:
^{pr2}$输入示例:
cluster = [['a'], [1, 2], [3, 4], [['w'], ['x'], ['y'], ['z']], [5, 6]]
Interest = [['w', 'qx12'], ['y', 'qx19']]
输出示例:
[['a'], [1, 2], [3, 4], [['w'], ['x'], ['y'], ['z']], [5, 6], ['qx12', 'qx19']]
有人知道有什么资源可以帮我解决这个问题吗?我用python3编写代码
虽然我同意@blacksite的观点,即列表理解并不是最具可读性的方法,但如果这是您的目标,请看以下方法:
数据:
^{pr2}$一些注意事项:
嵌套列表理解的工作顺序与嵌套for循环的顺序相同。如果你有:
那么这看起来像:
这看起来有点倒退,因为
x in a
远离使用x
的语句前面。把它想象成嵌套for循环的顺序。(您在原始代码中已将其向后放置。)你想要}。
cluster[2]
,而不是{cluster[2]
中的单个元素时,例如['w']
,['x']
等,您是在比较由term
表示的列表元素(['w']
)与该列表('w'
)中包含的由item[0]
表示的字符串。这不匹配,您需要term[0]
。在x[0]
s的列表)会删除一些在内部列表理解中创建的空列表。这不太好,也许有更好的方法。但是,在我看来,如果没有列表理解,整个方法将更具可读性。在相关问题 更多 >
编程相关推荐