如何在Python列表中每2个元素之后添加值?

2024-05-15 01:38:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在列表中的每两个元素之后添加一个特定的值。 例:

zz = ['a','b','c','d','f']

我想加上“英雄”一词,最终的外观将是:

zz = ['a','b','Hero','c','d','Hero','f']

我尝试使用函数insert将值放入特定索引中,但不起作用这是我的代码:

zz = ['a','b','c','d','f']
count = 0
for x in zz:
    if count == 2:
        zz.insert(count,"Carlos")
    print(x)
    count+=1

我认为这离解决方案还很远,我还是python新手


Tags: 函数代码in元素列表forifcount
1条回答
网友
1楼 · 发布于 2024-05-15 01:38:03

您可以试试这个:

letters = ['a','b','c','d','f']
n = 2
word = 'Hero'
val_list = [x for y in (letters[i:i+n] + [word] * (i < len(letters) - n) for i in range(0, len(letters), n)) for x in y]

print(val_list)

Here, used nested comprehensions to flatten a list of lists([item for subgroup in groups for item in subgroup]), sliced in groups of n with word added if less than n from end of list.

另一种选择:

letters = ['a','b','c','d','f']
n = 2
word = 'Hero'

for i in range(n, len(letters) + n, n + 1):
    letters.insert(i, word)

print ( letters )

输出:

['a', 'b', 'Hero', 'c', 'd', 'Hero', 'f']

相关问题 更多 >

    热门问题