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

哈桑·伊克巴尔(Hasan Iqbal):

假设我有一个这样的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方式,也许是单线?

马克·米科夫斯基(Mark Mikofski):

我有两个一线客轮。

鉴于:

>>> 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所 指出的,如果任何一个元素具有多个字母,则此方法将无效。

  2. 使用嵌套的理解将列表(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]整理锯齿状的列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在字符串列表的第n个元素中插入字符串

Python:如何从列表中删除/删除第n个元素?

Python:计算具有不同长度的列表中第n个元素的平均值

如何从链接列表中删除第n个元素?

Haskell:获取Snoc列表中的第N个元素

列表中的第n个重复元素

如何从python中的元组列表中提取等于值的第n个元素

在字符串的每个第n个元素之后插入字符(不使用stringstream)

使用列表中的第n个元素作为函数的输入

替换列表中的第n个元素

如何同时在列表中打印第n个元素?

列表的第n个元素

如何定位列表中的每个第n个元素,但仅在3个元素之后

Python:对列表中包含的列表的每个第n个元素运行一个函数

fsharp从列表中获取第n个元素

如何使用python列表理解更改列表列表中的第n个元素?

从第ith个元素到第j个元素提取元素范围,直到列表中的第n个元素

在R中向量的第n个元素之后加上值

如何使列表中的第n个元素成为自己的列表?

在python列表中的第7个元素之后插入前7个元素的总和

在列表中的每第 7 个元素后插入 null

从 Pandas Python 中的命名元组列表中提取第 n 个元素?

Racket,编写查找列表中第 n 个元素的函数

Python:如何从列表中获取第 n 个元素,其中 n 来自列表

计算python中两个列表中第n个位置元素的平均值

如何在python列表中的每个其他元素之后插入一个元素

将第 i 个元素与 python(3.7) 列表中的第 (j+1) 个元素相乘

如何比较Python中不同列表的第n个元素?

在列表中的第 4 个元素之后开始新行