Python 3.5.1扩展列表

时间:2016-03-13 20:39:41

标签: python list python-3.x

抱歉重新发布(我刚刚加入堆栈溢出30分钟前)。 我不认为我在上一篇文章中解释了我的功能。

def GetExtendedKeyword(message, newkeyword):
    while True:
        difference = len(message) - len(newkeyword)
        if difference > 0:
            newkeyword.extend(newkeyword[:difference]
            return newkeyword
        elif difference <= 0:
            return newkeyword

我所拥有的是两个列表,一个消息和一个关键字列表。程序计算它们之间的差异,如果关键字短于消息列表,程序将按该差异重复关键字列表。

例如,原始关键字列表为[0,1,5,2,5],差异为3,最终结果应为[0,1,5,2,5,0,1,5]。当涉及更长的关键字或消息列表时,该程序不喜欢我的代码。请帮忙!

3 个答案:

答案 0 :(得分:0)

尝试这样

l = [0, 1, 5, 4, 2, 9]
l.extend(l[:n]) #extend l with the first n elements of l

这仅适用于n&lt; len(l)......

答案 1 :(得分:0)

如果金额可能大于列表长度,您可以这样做:

def extend(lst, n):
    nfull = n / len(lst) + 1
    nrem = n % len(lst)
    return lst*nfull+lst[:nrem]

lst = [0,1,5,4,2,9]
print extend(lst, 3)
# [0, 1, 5, 4, 2, 9, 0, 1, 5]
print extend(lst, 7)
# [0, 1, 5, 4, 2, 9, 0, 1, 5, 4, 2, 9, 0]

答案 2 :(得分:0)

  

list.extend(L)通过附加所有项目来扩展列表   给出清单;相当于[len(a):] = L。

来自Python文档的句子。我认为这是你寻求帮助的最佳地点。根据文档,您的代码应如下所示:

listOne = [0,1,5,4,2,9]
listOne.extend(listOne[:n])

我想帮助你。