列表理解中的变量范围

我有一个由字符串和另一个列表组成的元组列表;


[('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)]

但我对扩展/表达式(?)中的每个变量范围感到困惑。


沧海一幻觉
浏览 174回答 3
3回答

心有法竹

就这么简单: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']]请注意,使用这种方法,元组内子列表的长度不是固定的。它可以任意长。

慕妹3146593

你可以这样做:data = [('string1', ['a1', 'b1']), ('string2', ['a2', 'b2']), ('string3', ['a3', 'b3'])]result = [[s + e1, s + e2] for s, [e1, e2] in data]print(result)输出[['string1a1', 'string1b1'], ['string2a2', 'string2b2'], ['string3a3', 'string3b3']]请注意,这假设内部列表只有两个元素。

白衣非少年

试试这个:new_list = list(map(lambda x: [x[0]+x[1][0], x[0]+x[1][1]],data))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python