本地VSCode运行正常,Coderbytes云环境为何报list无split属性错误?
问题原因及解决方案
这种差异源于本地测试输入方式与Coderbytes平台参数传递规则不匹配:
- 你本地测试时,大概率是将表示列表的字符串传入函数(比如
FindIntersection('["1, 3, 4, 7, 13", "1, 2, 4, 13, 15"]')),此时函数接收的参数是字符串,split方法可正常执行。 - 而Coderbytes平台的题目设计中,
FindIntersection函数的参数是直接解析完成的列表(即["1, 3, 4, 7, 13", "1, 2, 4, 13, 15"]),并非字符串。你的函数逻辑仍尝试对整个参数调用split,自然触发AttributeError——列表没有split属性。
修复方案
调整函数逻辑,直接处理传入的列表参数:
def FindIntersection(strArr): # 从列表中取出两个字符串元素,分别拆分转成数字列表 list1 = [int(num.strip()) for num in strArr[0].split(',')] list2 = [int(num.strip()) for num in strArr[1].split(',')] # 计算交集并排序,转成要求的字符串格式 intersection = sorted(set(list1) & set(list2)) return ','.join(map(str, intersection))
修改后,无论是平台传入的列表参数,还是本地直接传入列表测试,都能正常运行。
内容的提问来源于stack exchange,提问作者PyCoderL1
相关产品推荐
相关产品推荐

