【问题标题】:Python 3.5.1 Extending a listPython 3.5.1 扩展列表
【发布时间】:2016-03-13 20:39:40
【问题描述】:

抱歉重新发布(我刚刚在 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]。当涉及较长的关键字或消息列表时,该程序不喜欢我的代码。请帮忙!

【问题讨论】:

  • list.extend(list[:n])。但是,不要使用 list 作为名称,因为它与内置类型冲突。
  • n 可以大于列表的长度吗?
  • 对不起,我不是这个意思。那是我为代码编写的,但有时列表不想扩展该数量。
  • @Mureinik 是的,它可以。
  • 如果n 大于列表的长度,您希望它从头开始吗?

标签: python list python-3.x


【解决方案1】:

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

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]

【讨论】:

  • def GetExtendedKeyword(message, newkeyword): while True: difference = len(message) - len(newkeyword) if difference > 0: newkeyword.extend(newkeywordp[:difference]) print(newkeyword) return新关键字 elif 差异
【解决方案2】:

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

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

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

我想帮助你。

【讨论】:

  • 您好,这是我最初编写函数的方式,但对于某些长度的列表,程序不想扩展它。想法是我有两个列表(一个消息列表和一个关键字列表),程序计算它们之间的长度差异(消息 - 关键字),如果差异大于0,程序将扩展关键字列表匹配邮件列表。
  • 使用函数 len() 知道列表中有多少元素。代码在那里 message = [1,2,3,4,5,6] keyword = [1,2,3] n = len(message)-len(keyword) if n>0: keyword.extend(message[ n:]) 打印(消息,关键字)
【解决方案3】:

这样试试

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

这仅适用于 n

【讨论】:

  • 你能扩展一下并解释它是如何工作的吗?这在审查队列中弹出。
猜你喜欢
  • 1970-01-01
  • 2019-04-06
  • 2016-03-10
  • 2012-02-05
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
相关资源
最近更新 更多