如何用逗号分隔未打包的元组列表
How to separate with commas an unpacked list of tuples
将生成的元组列表解包为逗号分隔值。
我正在使用 FuzzyWuzzy 比较 2 个文件,并希望将结果输出到第三个文件中。
从这个 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 特定的解决方案,而是一个有意义的解决方案。
感谢您的关注。
您可以使用列表理解,使用 extended iterable unpacking, and then write the list to csv (check 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]]
尝试将其解包为各个组件,然后在它们之间用逗号打印它们:
for (i,(j,k)) in mapper:
print(i,j,k, sep=',')
(根据实际值,给 i
、j
和 k
有意义的名称可能会更好...)
根据你已有的代码,可以采用这样的解决方案:
mapper = [('Item_number', ('Item number', 91)), ('Item', ('Item name', 62))]
for i in mapper:
print(', '.join(map(str, (*[i[0]],*[*i[1]]))))
Item_number, Item number, 91
Item, Item name, 62
将生成的元组列表解包为逗号分隔值。
我正在使用 FuzzyWuzzy 比较 2 个文件,并希望将结果输出到第三个文件中。
从这个 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 特定的解决方案,而是一个有意义的解决方案。
感谢您的关注。
您可以使用列表理解,使用 extended iterable unpacking, and then write the list to csv (check 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]]
尝试将其解包为各个组件,然后在它们之间用逗号打印它们:
for (i,(j,k)) in mapper:
print(i,j,k, sep=',')
(根据实际值,给 i
、j
和 k
有意义的名称可能会更好...)
根据你已有的代码,可以采用这样的解决方案:
mapper = [('Item_number', ('Item number', 91)), ('Item', ('Item name', 62))]
for i in mapper:
print(', '.join(map(str, (*[i[0]],*[*i[1]]))))
Item_number, Item number, 91
Item, Item name, 62