.join()类型错误,传入整数列表时应为“str instance”

2024-09-28 05:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的职责是:

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是否在该新数中。我做错什么了


Tags: in列表inputreturndef错误ipython整数
3条回答

你的整个功能只需要

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

join()适用于字符串,您要查找的是字符串“33”,而不是数字33。试试这个

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

相关问题 更多 >

    热门问题