我有这个功能: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 passTypeError: sequence item 0: expected str instance, int found我希望“newnums”成为“nums”中所有整数中的一个数字,然后检查整数 33 是否在该新数字中。我究竟做错了什么?
3 回答
弑天下
TA贡献1818条经验 获得超8个赞
join() 适用于字符串,您正在寻找字符串“33”,而不是数字 33。尝试这个。
def has_33(nums): return "33" in "".join(map(str, nums))
桃花长相依
TA贡献1860条经验 获得超8个赞
您的整个功能只需要
return 33 in nums
join
是一种方便的将字符串列表批量连接成单个字符串的方法。它不适用于整数;我不确定你想做什么。
顺便说一句,您的pass
声明无法到达:它的return
前面有一个。
Cats萌萌
TA贡献1805条经验 获得超9个赞
首先将每个元素转换为字符串:
def has_33(nums):
newnums = "".join([str(i) for i in nums])
return "33" in newnums
另外,请确保您检查的是"33",而不是33。
添加回答
举报
0/150
提交
取消