.join() TypeError,传入整数列表时'expected str instance'



>我有以下函数:

def has_33(nums):
newnums = "".join(nums)
return 33 in newnums

但是,当我传入整数列表(例如[1,3,3](时,出现此错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-46-aa86496e9b3a> in <module>
1 # Check
----> 2 has_33([1, 3, 3])
<ipython-input-45-3d3793a0df29> in has_33(nums)
1 def has_33(nums):
----> 2     newnums = "".join(nums)
3     return 33 in newnums
4     pass
TypeError: sequence item 0: expected str instance, int found

我希望"newnums"成为"nums"中所有整数中的一个数字,然后检查整数 33 是否在该新数字中。我做错了什么?

join(( 适用于字符串,您正在寻找字符串 "33",而不是 33 的数字。试试这个。

def has_33(nums):
return "33" in "".join(map(str, nums))

您的整个函数只需要

return 33 in nums

join是将字符串列表批量串联为单个字符串的方便组合。 它不适用于整数;我不确定你想用它做什么。

顺便说一句,您的pass语句无法访问:它的正前方有一个return

首先将每个元素转换为字符串:

def has_33(nums):
newnums = "".join([str(i) for i in nums])
return "33" in newnums

另外,请确保检查"33",而不是33

最新更新