将结果的元组列表解压缩为逗号分隔的值。
使用FuzzyWuzzy,我正在比较2个文件,并希望将结果输出到第3个文件中。
从这个SO问题开始: Python: Keepning only the outerloop max result when comparing string similarity of two lists
输出为:
[('Item_number', ('Item number', 91)), ('Item', ('Item name', 62))]
使用这种拆包方法,我能够将值分开:
for i in mapper:
print(*[i[0]],*[*i[1]])
输出:
Item_number Item number 91
Item Item name 62
现在,这是我的不足之处。我正在寻找要用逗号分隔的单个值,以便将其保存到CSV文件中。
我测试了许多其他解决方案,例如itertools,但没有成功,例如:
[('I', 't', 'e', 'm', '_', 'n', 'u', 'm', 'b', 'e', 'r', 'Item number', 91), ('I', 't', 'e', 'm', 'Item name', 62)]
预期输出:
Item_number, Item number, 91
Item, Item name, 62
注意:我不是在寻找itertool特定的解决方案,而是寻找一个有意义的解决方案。
感谢您的关注。
答案 0 :(得分:1)
您可以使用列表推导,使用extended iterable unpacking扩展第二个元组的值,然后将该列表写入csv(检查this post上如何从列表创建csv文件):
l = [('Item_number', ('Item number', 91)), ('Item', ('Item name', 62))]
[[i, *j] for i, j in l]
# [['Item_number', 'Item number', 91], ['Item', 'Item name', 62]]
答案 1 :(得分:1)
尝试将其解压缩为各个组件,然后使用逗号之间的逗号进行打印:
for (i,(j,k)) in mapper:
print(i,j,k, sep=',')
(根据实际的值,给i
,j
和k
有意义的名称可能会更好。)
答案 2 :(得分:0)
根据您现有的代码,您可以使用这样的解决方案:
json_encode(iterator_to_array($cursor))