Python中如何对zip类型元素进行拼接生成目标字符串列表
解决方案
你可以通过两层循环的列表推导式快速实现需求,代码如下:
# 输入数据 input_data = [ ('ef', ['c', 'b', 'a']), ('a', ['b']), ('ab', ['c']), ('b', ['c']), ('c', ['c', 'a']), ] # 生成结果 result = [prefix + suffix for prefix, suffix_list in input_data for suffix in suffix_list] print(result)
运行输出完全符合预期:
['efc', 'efb', 'efa', 'ab', 'abc', 'bc', 'cc', 'ca']
逻辑说明
- 外层循环遍历输入中的每个元组,解包得到前缀字符串
prefix和后缀列表suffix_list - 内层循环遍历后缀列表中的每个后缀元素,和前缀直接做字符串拼接
- 所有拼接结果会自动收集到最终的列表中
如果你觉得列表推导式可读性不高,也可以用普通循环实现,逻辑完全一致:
result = [] for prefix, suffix_list in input_data: for suffix in suffix_list: result.append(prefix + suffix)
之前使用join方法失败大概率是因为误将元组整体、或者列表直接传入了join参数,join只能接收字符串组成的可迭代对象,这种两两拼接的场景直接用+运算符或者f-string会更简单。
内容的提问来源于stack exchange,提问作者Chr_8580
相关产品推荐
相关产品推荐

