【问题标题】:How to separate with commas an unpacked list of tuples如何用逗号分隔未打包的元组列表
【发布时间】:2019-10-28 04:19:42
【问题描述】:

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

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

感谢您的关注。

【问题讨论】:

  • 您能改写一下这个问题吗?最少的、有效的示例和知识,你得到的和你期望的会有所帮助。

标签: python list tuples unpack fuzzywuzzy


【解决方案1】:

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

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

【讨论】:

  • 我向您学习了在特定情况下使用 ', '.join(map(str())) 的正确语法。最肯定的是,这将有助于向前推进。谢谢
【解决方案2】:

尝试将其解包到单个组件中,然后用逗号打印它们:

for (i,(j,k)) in mapper:
    print(i,j,k, sep=',')

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

【讨论】:

    【解决方案3】:

    您可以使用列表推导,使用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]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2021-07-20
      • 2013-07-03
      • 2018-08-07
      相关资源
      最近更新 更多