[英]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.