我要删除在Python列表中创建的空值。
我的代码在这里-https://pastebin.com/whz7t4yR
我试图解决Codeforces中的“字符串任务”问题 每次找到一个字母,我都会在列表中的那个字母之后插入一个点。但是,在插入点之后会创建一个空值。
我尝试删除空值。但显然,它仅适用于特定的测试用例(“ Codeforces”)。对于其他两个测试用例,它显示了
“ IndexError:列表索引超出范围”
for l in range(0,len(s)):
if(s[l] in letter and s[l+1] in letter):
s.insert(l+1, '.')
print("inside IF, index[",l,"]=>", s[l])
elif(s[l] in letter):
s.insert(l+1,'.')
#del (s[l+2])
print("inside ELIF, index[",l,"]=>", s[l])
else:
print("inside ELSE, index[",l,"]=>", s[l])
continue
预期结果:
.c.d.f.r.c.s
实际结果:
.c.d.f.r.cs
答案 0 :(得分:1)
for l in range(0,len(s)):
if(...s[l+1]...)
这些在您的前两行中,保证l+1
超出列表s
的范围
如果您需要像这样访问下一个元素,请将范围更改为for l in range(0,len(s)-1):
,这样您就知道您将始终拥有一个s[l+1]
元素
答案 1 :(得分:0)
尝试一下。完整的解决方案。
st = input()
vowels = ['a','e','i','o','u','y']
for i in st.lower():
if i not in vowels:
print(f'.{i}', end='')
答案 2 :(得分:0)
您还可以使用以下更简单的方法来解决问题:
word = input("").lower()
no_Vowel = word.translate({ord(change): None for change in "aoyeui"})
no_VowelsPoint = f".{no_Vowel}"
points = ".".join(no_Vowels).replace("..", ".")
print(points.lower())