我有两个输入:proof_paths
和augment_number
如下。
输入
augment_number = 2
proof_paths = [[('#1', 'nationality'), ('#2', 'placeOfBirth'), ('#3', 'locatedIn')],
[('#1', 'nationality'), ('#2', 'hasFather'), ('#3', 'nationality')]]
我将从proof_paths 中取出#1、#2 和#3 之外的单词,创建一个列表,并在整个proof_paths 中复制与增广数相同的数量。我想要的输出如下。
输出
[[['nationality', 'placeOfBirth', 'locatedIn'],
['nationality', 'placeOfBirth', 'locatedIn']],
[['nationality', 'hasFather', 'nationality'],
['nationality', 'hasFather', 'nationality']]]
我想知道允许我通过尽可能少地使用 for 循环来获得我想要的输出的代码。
编辑
我尝试如下获得上述结果。我想知道是否有办法在没有 for 循环的情况下获得结果。
[[list(map(lambda x : x[1], path))]*augment_number for path in proof_paths]
您可以尝试使用map()
代替for
-loop。
你有列表理解能力
[ ... for path in proof_paths]
你可以写成
map(lambda path: .... , proof_paths)
它给
list(map(lambda path:[list(map(lambda x : x[1], path))]*augment_number, proof_paths))
它在没有for
-loops 的情况下工作(但它map
是隐藏循环),但它对人类来说是不可读的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句