当前位置 : 主页 > 编程语言 > python >

Python中关于join函数的陷阱?

来源:互联网 收集:自由互联 发布时间:2022-06-15
目录 ​​说明​​ ​​数据说明​​ ​​正确示例​​ ​​错误示例​​ ​​解决办法​​ 说明 最近在用Python的join函数连接多个列表时,出现了如下两个错误,即合并类型不一致

目录

  • ​​说明​​
  • ​​数据说明​​
  • ​​正确示例​​
  • ​​错误示例​​
  • ​​解决办法​​

说明

最近在用Python的join函数连接多个列表时,出现了如下两个错误,即合并类型不一致。折腾了很久才找到原因,真是基础不牢,地动山摇。
​​​TypeError: sequence item 3: expected str instance, int found​​​ 或
​​TypeError: can only concatenate list (not "str") to list​​

数据说明

a = ['a','c','c']
b = ['a','s','e']
c = [4,5,'e']
d = ['f']
e = 'g'
f = 'a'

正确示例

以下运行成功。

print('\t'.join(a+b))
print('\t'.join(a+d))
print('\t'.join(e+f))

# a       c       c       a       s       e
# a       c       c       f
# g       a

错误示例

join函数只能连接同类型的数据,要么都为list,要么都为str等。

同样列表内元素也是如此,必须是同类型的,否则需要转换。

print('\t'.join(a+c))
# TypeError: sequence item 3: expected str instance, int found
print('\t'.join(a+e))
# TypeError: can only concatenate list (not "str") to list

解决办法

格式转换

print('\t'.join(a+[str(i) for i in c]))
print('\t'.join(a+[e]))

# a       c       c       4       5       e
# a       c       c       g



作者:Bioinfarmer

 若要及时了解动态信息,请关注同名微信公众号:Bioinfarmer。

上一篇:Windows下的Python多版本管理?
下一篇:没有了
网友评论