我有一个列表,如:
mylist = ["1", "2", "3", "4", "5"]
Run Code Online (Sandbox Code Playgroud)
我想为每个其他项添加一些文本,所以它看起来像这样:
mylist = ["1a", "2", "3a", "4", "5a"]
Run Code Online (Sandbox Code Playgroud)
我写了这个,每个项目都适用.如何使其仅适用于所有其他项目?
mylist2 = ["a" + item for item in mylist]
Run Code Online (Sandbox Code Playgroud)
Ev.*_*nis 10
一种方法是这样做:
mylist = ["1", "2", "3", "4", "5"]
res = [x + ('a' if i%2 == 0 else '') for i, x in enumerate(mylist)]
Run Code Online (Sandbox Code Playgroud)
这导致:
['1a', '2', '3a', '4', '5a']
Run Code Online (Sandbox Code Playgroud)
这种方法利用了这样一个事实,即当你除以2时你想要改变的项的索引的余数为1.参见模数
Roh*_*dey 10
试试这个:
for i in range(0, len(mylist), 2):
mylist[i] = mylist[i] + "a"
Run Code Online (Sandbox Code Playgroud)
编辑1:
for i in range(0, len(mylist), 2):
mylist[i] += "a"
Run Code Online (Sandbox Code Playgroud)
使用enumerate
和模来用三元数来测试奇数或偶数值.
mylist = ["1", "2", "3", "4", "5"]
mylist2 = [item if i%2 else "a" + item for i,item in enumerate(mylist)]
Run Code Online (Sandbox Code Playgroud)
结果:
>>> mylist2
['a1', '2', 'a3', '4', 'a5']
Run Code Online (Sandbox Code Playgroud)
拿到1a
,等...只需切换"a" + item
通过item + "a"