.join()类型错误,“预期的str实例”传入整数列表时

我有这个功能:


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


UYOU
浏览 94回答 3
3回答

弑天下

join() 适用于字符串,您正在寻找字符串“33”,而不是数字 33。尝试这个。def&nbsp;has_33(nums): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"33"&nbsp;in&nbsp;"".join(map(str,&nbsp;nums))

桃花长相依

您的整个功能只需要return&nbsp;33&nbsp;in&nbsp;numsjoin是一种方便的将字符串列表批量连接成单个字符串的方法。它不适用于整数;我不确定你想做什么。顺便说一句,您的pass声明无法到达:它的return前面有一个。

Cats萌萌

首先将每个元素转换为字符串:def has_33(nums):&nbsp; &nbsp; newnums = "".join([str(i) for i in nums])&nbsp; &nbsp; return "33" in newnums另外,请确保您检查的是"33",而不是33。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python