Python—list 自己做出来错了,不知道应该怎么改,谢谢大佬们
题目:完成insert_word(word_list,word_to_insert,before_this_word)函数,该函数将传递三个参数:字符串列表,要插入单词列表中的单词,在其前面插入第二个参数字的字。
如果要插入的单词尚未在单词列表中,则该功能会将单词插入到单词列表中的正确位置。
note:
该函数不返回结果,而是对参数列表进行更改。
如果要插入的单词已经在单词列表中,则该功能不执行任何操作。
如果第三个参数单词不在单词列表中,则该函数不执行任何操作。
测试Test1:
word_list = ['fish', 'barrel', 'like', 'shooting', 'sand', 'bank']
insert_word(word_list, "water", "bank")
print(word_list)
输出结果result1:
['fish', 'barrel', 'like', 'shooting', 'sand', 'water', 'bank']
Test2:
word_list = ['cat', 'the', 'bag', 'let', 'out', 'can']
insert_word(word_list, "dog", "let")
print(word_list)
result2:
['cat', 'the', 'bag', 'dog', 'let', 'out', 'can']
把你的代码发出来…… 同楼上 def insert_word(word_list, word_to_insert, before_this_word):
for word in range(len(word_list)):
before_this_word=word_list.index(before_this_word)
word_in=word_list
word_list.insert(word_in,word_to_insert)
return word_list 本帖最后由 Twilight6 于 2020-5-16 08:27 编辑
MIQIWEI 发表于 2020-5-16 08:18
def insert_word(word_list, word_to_insert, before_this_word):
for word in range(len(word_ ...
我看错了 抱歉 Twilight6 发表于 2020-5-16 08:21
我看错了 抱歉
您知道这道题该怎么改吗? MIQIWEI 发表于 2020-5-16 08:18
def insert_word(word_list, word_to_insert, before_this_word):
for word in range(len(word_ ...
def insert_word(word_list, word_to_insert, before_this_word):
if word_to_insert not in word_list and before_this_word in word_list:
before_this_word = word_list.index(before_this_word)
word_list.insert(before_this_word, word_to_insert)
return word_list
改成这样就行了,你的for循环在这里是没有用的,你这里的return只让你for 循环了一次 def insert_word(word_list, word_to_insert, before_this_word):
if word_to_insert in word_list or before_this_word not in word_list:
pass
else:
ind = word_list.index(before_this_word)
word_list.insert(ind, word_to_insert) Twilight6 发表于 2020-5-16 08:35
改成这样就行了,你的for循环在这里是没有用的,你这里的return只让你for 循环了一次
谢谢您!! 海上飞鱼 发表于 2020-5-16 08:36
谢谢大佬!!! MIQIWEI 发表于 2020-5-16 08:50
谢谢您!!
如果帮助到你 记得给个最佳答案哦
{:10_287:} Twilight6 发表于 2020-5-16 08:35
改成这样就行了,你的for循环在这里是没有用的,你这里的return只让你for 循环了一次
还想问您一道题~麻烦了
问题:
完成remove_short_words(word_list)函数,该函数将字符串列表作为参数传递给该函数。该函数首先调用在上一个问题中开发的get_shortest_length()函数,以查找列表中最短单词的长度。然后,该函数使用pop()方法删除参数列表中所有长度最短的单词。
Note:
该函数不返回结果,而是对参数列表进行更改。
您可以假定测试代码中包含get_shortest_length()函数,而您的答案中无需包含此函数。
Test1:
word_list = ['fish', 'barrel', 'like', 'shooting', 'sand', 'bank']
remove_short_words(word_list)
print(word_list)
result1:
['barrel', 'shooting']
Test2:
word_list = ['cat', 'the', 'the', 'bag', 'let', 'out', 'can']
remove_short_words(word_list)
print(word_list)
result2:
[]
我的代码是:
def get_shortest_length(word_list):
new_list=[]
for word in range(len(word_list)):
if len(word_list)>0:
word_min=min(word_list,key=len)
return len(word_min)
else:
return 0
def remove_short_words(word_list):
new_list=[]
for word in range(len(word_list)):
if len(word)>len(word_min):
new_list.append(word)
return new_list
else:
return[]
您能告诉一下我该怎么改吗?谢谢!
MIQIWEI 发表于 2020-5-16 08:59
还想问您一道题~麻烦了
问题:
完成remove_short_words(word_list)函数,该函数将字符串列表作为参数 ...
好 我看看 你骚等 好的 谢谢! MIQIWEI 发表于 2020-5-16 09:31
好的 谢谢!
def get_shortest_length(word_list):
if len(word_list) > 0:# 判断列表是否有参数应该放在第一个开始判断,因为没参数进行后面完全没有意义
word_min_leng = len(min(word_list, key=len))
# min 只是返回遇到的第一个最小长度的字符串,你要把所有这个长度的都输出,所以计下长度
return word_min_leng# 返回最小长度的字符串
def remove_short_words(word_list):
min_len = get_shortest_length(word_list)
new_list = []
for word in range(len(word_list)):
if len(word_list) == min_len:
new_list.append(word)
for i in new_list[::-1]:
word_list.pop(i)
return word_list
word_list = ['cat', 'the', 'the', 'bag', 'let', 'out', 'can']
remove_short_words(word_list)
print(word_list)
word_list = ['fish', 'barrel', 'like', 'shooting', 'sand', 'bank']
remove_short_words(word_list)
print(word_list) Twilight6 发表于 2020-5-16 09:37
嗯嗯太感谢了!我想问一下new_list[::-1]这个地方是什么意思呢?
页:
[1]