当前位置: 首页 > 面试题库 >

在第n个元素之后在Python列表中插入元素

漆雕奇
2023-03-14
问题内容

假设我有一个这样的Python清单:

letters = ['a','b','c','d','e','f','g','h','i','j']

我想在每个第n个元素后插入一个“ x”,比方说该列表中的三个字符。结果应为:

letters = ['a','b','c','x','d','e','f','x','g','h','i','x','j']

我知道我可以通过循环和插入来做到这一点。我实际上正在寻找的是Pythonish方式,也许是单线?


问题答案:

我有两个一线客轮。

鉴于:

>>> letters = ['a','b','c','d','e','f','g','h','i','j']
  1. 使用enumerate获得指数,增加'x'每3次字母, mod(n, 3) == 2,然后连接成字符串和list()它。

    >>> list(''.join(l + 'x' * (n % 3 == 2) for n, l in enumerate(letters)))
    

    [‘a’, ‘b’, ‘c’, ‘x’, ‘d’, ‘e’, ‘f’, ‘x’, ‘g’, ‘h’, ‘i’, ‘x’, ‘j’]

但是正如@ sancho.s所指出的,如果任何一个元素具有多个字母,则此方法将无效。

  1. 使用嵌套的理解将列表(a)的列表展平,将列表分成3组,'x'如果列表末尾少于3个,则添加。

    >>> [x for y in (letters[i:i+3] + ['x'] * (i < len(letters) - 2) for
     i in xrange(0, len(letters), 3)) for x in y]
    

    [‘a’, ‘b’, ‘c’, ‘x’, ‘d’, ‘e’, ‘f’, ‘x’, ‘g’, ‘h’, ‘i’, ‘x’, ‘j’]

(a)[item for subgroup in groups for item in subgroup]整理锯齿状的列表。



 类似资料:
  • 我正在实现一个自动化,它接受一个现有的XML文件,更改其中一个值并覆盖该文件。 我的主要问题是,保持原始文件的格式对我来说很重要,但我无法做到这一点,新数据没有换行符,而且它只是一条长线。 我的代码是: 如何在每个元素后添加\n?谢谢

  • 本文向大家介绍Elm从列表中获取第n个元素,包括了Elm从列表中获取第n个元素的使用技巧和注意事项,需要的朋友参考一下 示例 List不支持“随机访问”,这意味着要从列表中获取第五个元素要比第一个元素花费更多的工作,因此没有任何List.get nth list功能。必须从头开始(1 -> 2 -> 3 -> 4 -> 5)。 如果您需要随机访问,则使用随机访问数据结构(例如)可能会获得更好的结果

  • 问题内容: 可以说我有: 我想检索每个内部列表的第一个元素: 无需执行此操作(我当前的hack): 我敢肯定有一个班轮,但我真的不知道我在寻找什么。 问题答案: 只需将您的列表组合更改为: 要么: 或者,如果您要处理“适当的数组”: 和:

  • 我有一个列表[z”,“1”,“3”,“x”,“y”,“00”,“x”,“y”,“4”],在这种情况下,我需要得到字符串后的第一个

  • 问题内容: 我已经看过这篇文章: Python:通过删除每个第n个元素从现有列表构建新列表,但是由于某些原因,它对我不起作用: 我这样尝试: 此函数需要一个列表和。然后,它使用列表中的n步删除第n个元素,并打印结果。 这是我的函数调用: 错误的输出: 代替 然后我从上面的链接尝试了一个变体: 再次,函数调用: 给了我同样的错误的结果: 不是 如何正确地从列表中删除/删除/删除 第n个 项目? 问题

  • 当已知Python列表总是包含单个项时,除了: 你可能会问,'你为什么要这么做?‘。仅仅是好奇心。在Python中似乎有一种替代的方法来完成所有的事情。