我有一個由字符串和另一個列表組成的元組列表;[('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)]但我對擴展/表達式(?)中的每個變量范圍感到困惑。
3 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
就這么簡單:
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
TA貢獻1820條經驗 獲得超9個贊
你可以這樣做:
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']]
請注意,這假設內部列表只有兩個元素。
添加回答
舉報
0/150
提交
取消