我有一个元组列表,其中包含一个字符串和另一个列表;
[('string1', ['a1', 'b1']),
('string2', ['a2', 'b2']),
('string3', ['a3', 'b3'])]
我无法弄清楚如何使用列表理解来得出类似的东西;
[['string1a1', 'string1b1'],
['string2a2', 'string2b2'],
['string3a3', 'string3b3']]
我试过类似的东西
results = [join(ministring, i) for i in (miniarray for (ministring, miniarray) in myarray)]
但我对扩展/表达式(?)中的每个变量范围感到困惑。
最佳答案
就这么简单:
lst = [('string1', ['a1', 'b1']),
('string2', ['a2', 'b2']),
('string3', ['a3', 'b3'])]
res = [[master + tail for tail in sublist] for master, sublist in lst]
返回:
[['string1a1', 'string1b1'], ['string2a2', 'string2b2'], ['string3a3', 'string3b3']]
请注意,使用这种方法,元组内子列表的长度是不固定的。它可以任意长。
关于python - 列表理解内的可变范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53410474/