用另一个值替换奇数位置的Python列表元素

用另一个值替换奇数位置的Python列表元素,python,list,Python,List,我有一张单子 l = ['3a' '4a' '5a' '6a' '7a' '4a' '4a' '5a' '6a' '7a' '4a'] 并且只希望替换列表中具有奇数位置的元素。 结果应该是: res = ['xx' '4a' 'xx' '6a' 'xx' '4a' 'xx' '5a' 'xx' '7a' 'xx'] 在您的示例中,您希望替换偶数元素,就像在python中一样,第一个元素的索引为0 标准python: l = ['3a', '4a', '5a', '6a', '7a', '4a

我有一张单子

l = ['3a' '4a' '5a' '6a' '7a' '4a' '4a' '5a' '6a' '7a' '4a']
并且只希望替换列表中具有奇数位置的元素。 结果应该是:

res = ['xx' '4a' 'xx' '6a' 'xx' '4a' 'xx' '5a' 'xx' '7a' 'xx']

在您的示例中,您希望替换偶数元素,就像在python中一样,第一个元素的索引为0

标准python:

l = ['3a', '4a', '5a', '6a', '7a', '4a', '4a', '5a', '6a', '7a', '4a']
for i in range(0, len(l), 2):
    l[i] = 'xx'
使用numpy:

import numpy as np

l = np.array(['3a', '4a', '5a', '6a', '7a', '4a', '4a', '5a', '6a', '7a', '4a'])
l[::2] = 'xx'

您可以使用
itertools
模块中的
cycle
chain
组合

from itertools import cycle, chain
l = ['3a', '4a', '5a', '6a', '7a', '4a', '4a', '5a', '6a', '7a', '4a']
print(list(chain.from_iterable(zip(l[1::2], cycle(['xx'])))))
这将产生:

['4a', 'xx', '6a', 'xx', '4a', 'xx', '5a', 'xx', '7a', 'xx']

好的,那么您尝试了什么?尝试了l[0::2]=“xx”@patrickartner numpy数组将不带逗号打印。“伪代码”听起来有点耸人听闻。@roganjosh numpy数组的打印格式不是
l=['1''2''3']
-是吗?-另外:OP提到的是
列表
,标记了,而不是numpy-如果他将问题调整为可以解决的问题,我很高兴删除我的DV。但我们不知道这是一个numpy数组,因为OP没有给出任何指示。事实上,OP仅将对象描述为“列表”。如果您打印一个numpy数组,当然可以,但这不是问题主体中所指出的。这两个示例都对
l
具有破坏性,OP似乎希望得到一个新的
res
列表。当然,您可以事先创建一个副本,但最好给出一个非破坏性示例。欢迎使用堆栈溢出!虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。试试这个
['4a', 'xx', '6a', 'xx', '4a', 'xx', '5a', 'xx', '7a', 'xx']
list=[1,2,3,4,5,6,7,8,9,10]
print('Initial List with 10 Element:')
print(list)
for i in range(0, len(list), 2):
     list[i]=0
print('After replacing new element in the odd place:')
print(list)
list.append(16)
list.append(17)
list.append(18)
print('List after adding three element at the end')
print(list)
list.insert(0,100)
print('List after adding one element at the beginning:')
print(list)
list.extend([20,21,23,24,25])
print('List after adding new list to the existing one:')
print(list)