繁体   English   中英

替换Python列表中项目的选定部分

[英]Replacing selected parts of an item in Python list

我有一个清单如下

lst = ['.ab.cd.ef.gh.', '.ij.kl.mn.op.']

在每个项目中,我想用*替换item[0]并用$替换item[-1]

我尝试使用:

[item.eplace(item[0], '*') for item in lst]

但结果就是全部. 不论位置如何,都将替换为*

感谢您的帮助!

这将起作用:

>>> lst = ['.ab.cd.ef.gh.', '.ij.kl.mn.op.']
>>> ['*' + item[1:-1] + '$' for item in lst]
['*ab.cd.ef.gh$', '*ij.kl.mn.op$']
>>>

item[1:-1]使用Explain Python的slice表示法 ,将获得item除第一个和最后一个字符以外的所有字符:

>>> 'abcde'[1:-1]
'bcd'
>>> '*' + 'abcde'[1:-1] + '$'  # Add the characters we want on each end
'*bcd$'
>>>

使用此代码:

lst = ['.ab.cd.ef.gh.', '.ij.kl.mn.op.']
for k in range(0, len(lst)):
    item = lst[k]
    lst[k] = '*'+item[1:-1]+'$'

print lst

这使用for循环和range()遍历每个项目,并将lst[k]分配给item 然后,它使用item[1:-1]获取不包括首字符和尾字符的字符串。 然后,我们使用字符串串联在开头添加一个星号,并在结尾添加一个美元符号。 运行方式为:

>>> lst = ['.ab.cd.ef.gh.', '.ij.kl.mn.op.']
>>> for k in range(0, len(lst)):
...     item = lst[k]
...     lst[k] = '*'+item[1:-1]+'$'
... 
>>> print lst
['*ab.cd.ef.gh$', '*ij.kl.mn.op$']
>>> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM