如何用逗号分隔未包装的元组列表

时间:2019-06-13 14:27:03

标签: python list tuples unpack fuzzywuzzy

将结果的元组列表解压缩为逗号分隔的值。

使用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特定的解决方案,而是寻找一个有意义的解决方案。

感谢您的关注。

3 个答案:

答案 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=',')

(根据实际的值,给ijk有意义的名称可能会更好。)

答案 2 :(得分:0)

根据您现有的代码,您可以使用这样的解决方案:

json_encode(iterator_to_array($cursor))