为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2022-06-02 10:12:27
我有这个功能: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))


查看完整回答
反对 回复 2022-06-02
?
桃花长相依

TA贡献1860条经验 获得超8个赞

您的整个功能只需要

return 33 in nums

join是一种方便的将字符串列表批量连接成单个字符串的方法。它不适用于整数;我不确定你想做什么。

顺便说一句,您的pass声明无法到达:它的return前面有一个。


查看完整回答
反对 回复 2022-06-02
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

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


def has_33(nums):

    newnums = "".join([str(i) for i in nums])

    return "33" in newnums

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


查看完整回答
反对 回复 2022-06-02
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信