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

2024-03-28 11:52:58 发布

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

我有一个清单如下

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

在每个项目中,我想用*替换item[0],用$替换item[-1]。你知道吗

我试着用:

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

但是结果是所有.都被*替换,而不管位置如何。你知道吗

感谢你的帮助!你知道吗


Tags: 项目inforabcditemghmn
2条回答

这将起作用:

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

使用Explain Python's slice notationitem[1:-1]将获取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$']
>>> 

相关问题 更多 >