gpt4 book ai didi

python - 我在 python 中遇到列表退出错误

转载 作者:行者123 更新时间:2023-12-04 15:30:42 24 4
gpt4 key购买 nike

我是一名初学者 python 程序员并且我开始在 codewars 中做练习,我得到了以下任务:

完成解决方案,将字符串拆分为两个字符对。如果字符串包含奇数个字符,则应使用下划线 ('_') 替换最后一对缺失的第二个字符。

solution('abc') # 应该返回 ['ab', 'c_']solution('abcdef') # 应该返回 ['ab', 'cd', 'ef']

现在我写了下面的代码,得到了正确的结果:

def solution(s):
l = [s[i:i+2] for i in range(0,len(s) ,2)]
if len(l[-1]) == 1:
l[-1] += "_"
return l

print(solution('abc')) -> ['ab', 'c_']
print(solution('asdfadsf')) -> ['as', 'df', 'ad', 'sf']

但是当我将我的代码提交给代码 war 时,我收到以下错误:

if len(l[-1]) == 1: IndexError: list index out of range

如果我在 visual studio 代码中测试,我不会得到一个错误。

有人可以向我解释一下我该如何解决这个问题吗?谢谢 !! :)

最佳答案

问题是 l[-1] 输入 ''。在这种情况下,您的列表理解会返回一个空列表 [],其中没有 l[-1] 元素。

单独检查空字符串输入:

def solution(s): 
if not s:
return []

l = [s[i:i+2] for i in range(0,len(s) ,2)]
if len(l[-1]) == 1:
l[-1] += "_"
return l

print(solution('abc')) # -> ['ab', 'c_']
print(solution('asdfadsf')) # -> ['as', 'df', 'ad', 'sf']

print(solution('')) # -> []

关于python - 我在 python 中遇到列表退出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61291769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com