Jas*_*078 5 python replace list
将列表中的一项替换为两项的最简单方法是什么?
所以:
list=['t' , 'r', 'g', 'h', 'k']
Run Code Online (Sandbox Code Playgroud)
如果我想用 'a' 和 'b' 替换 'r':
list = ['t' , 'a' , 'b', 'g', 'h', 'k']
Run Code Online (Sandbox Code Playgroud)
使用切片分配可以相当容易地完成:
>>> l = ['t' , 'r', 'g', 'h', 'k']
>>>
>>> pos = l.index('r')
>>> l[pos:pos+1] = ('a', 'b')
>>>
>>> l
['t', 'a', 'b', 'g', 'h', 'k']
Run Code Online (Sandbox Code Playgroud)
另外,不要调用您的变量list,因为该名称已被内置函数使用。
如果列表包含超过 1 次出现,那么'r'您可以使用列表理解或itertools.chain.from_iterable使用生成器表达式。但是,如果列表仅包含一个这样的项目,则用于 @arshajii 的解决方案。
>>> lis = ['t' , 'r', 'g', 'h', 'k']
>>> [y for x in lis for y in ([x] if x != 'r' else ['a', 'b'])]
['t', 'a', 'b', 'g', 'h', 'k']
Run Code Online (Sandbox Code Playgroud)
或者:
>>> from itertools import chain
>>> list(chain.from_iterable([x] if x != 'r' else ['a', 'b'] for x in lis))
['t', 'a', 'b', 'g', 'h', 'k']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |