gpt4 book ai didi

python - 在每个第 n 个元素之后插入 Python 列表中的元素

转载 作者:IT老高 更新时间:2023-10-28 20:34:03 27 4
gpt4 key购买 nike

假设我有一个这样的 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']

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

最佳答案

我有两个一体式衬垫。

给定:

>>> letters = ['a','b','c','d','e','f','g','h','i','j']
  1. 使用enumerate获取索引,每3rd个字母添加'x'eg : 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 points out如果任何元素有多个字母,这将不起作用。

  2. 使用嵌套推导来展平列表列表(a),以 3 个为一组进行切片,如果距离末尾小于 3,则添加 'x'列表。

    >>> [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] 展平一个锯齿状的列表列表。

关于python - 在每个第 n 个元素之后插入 Python 列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31040525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com