2016-11-19 37 views
0

我理解如何指标在给定列表中的单词,但如果给定一组列表,在列表中不发一言,我怎么发现新词的索引位置而不附加或插入新词的排序列表?如何不重复插入新词列出清单?

例如: DEF find_insert_position: 的a_list = [ '鸟', '狗', '鳄鱼'] new_animal = '牛'

在不改变列表中,我将如何确定,其中新词会插入一个排序列表中?因此,如果您输入了新单词,列表将按字母顺序统计。请记住,这是一个给定的名单和文字,所以事先我不知道任何的话。我正在使用Python3。

+2

你实现你的例子有无处可以插入“牛”,使该列表按字母顺序排列,对吗? –

+0

@JonClements这是一个家庭作业。我们将返回给定列表中给定名称的索引。如果单词不在列表中,我们必须确定单词插入的位置而不改变其顺序。我知道在python中,我们可以对列表进行排序,使它们按字母顺序排列,但如果我不允许将它添加到列表中,我不知道如何找到单词的位置。 –

回答

0

如果是可以接受的单词添加到另一个litst而不改变原来的列表中,那么你可以试试这个:

def find_insert_position(lst, word): 
    new_lst = lst[:] # make a copy of the list so you don't modify the original 
    new_lst.append(word) # add word to lst 
    sorted_lst = sorted(new_lst) 
    return sorted_lst.index(word) # return 0-based position of word in sorted list 

a_list = ['Bird', 'Dog', 'Alligator'] 
new_animal = 'Cow' 

print(find_insert_position(a_list, new_animal)) 
+0

我想这样做,我的意思是它并不是说不创建一个新的列表。大声笑。谢谢!!我不得不修改以适应规范的所有可能的条件,但它通过了测试。再次感谢! –

0

集通过在矿井单词表的每个项目变量计数器为0 循环,并在列表中的每个词比较给定列表 如果给定的字比列表中的项目大于增加计数器

所以当你不在循环中,计数器值就是你正在寻找的索引。

可以将此转换为代码。

+0

我认为我的一个同学试图用这种方式来解释,但我一定是做错了事,因为我无法让它为我工作。 –