常用处理 - join 一个数字 list

  • 作者:KK

  • 发表日期:2020.02.18


要点速读

  • ids = (str(id) for id in ids)

发生场景

新手会遇到这样的报错代码:

ids = [11, 22, 33]
print(', '.join(ids))

报错消息为:TypeError: sequence item 0: expected str instance, int found


原因

join 方法只接受一个全部都包含 string 的 list 数据类型,然而上面的 ids 变量里包含了 int 型数字,那办法就是将这些 int 转换成 string


解决方案

ids = [11, 22, 33]
ids = (str(id) for id in ids) #一句代码转换
print(', '.join(ids))

个人觉得这种需求还是时而存在的,需要这样处理不是很好,希望新版 python 能优化这个支持,比如 ', '.join(ids, True)这样通过第2个参数来说明兼容 int 型元素