所以说我有['habcuxabc929abc', 'tabc', 'q', 'jabcuabc9']
。你知道吗
我基本上想做的是将这个列表中的每个元素在abc
之间拆分,然后计算剩余的部分。所以上面指定的列表看起来像:[3, 1, 1, 3]
。我所做的就是这样做,但我想实现的主要事情是,如果这个值小于2,那么它将删除所有的abc
,并用q
替换它们(到目前为止,这是有效的,尽管它可能不是pythonic)。如果值大于2,那么我只希望它删除最后一个'abc'
,并用q
替换它,保留之前所有的abc
不变,但我不知道如何做,任何建议都将不胜感激。你知道吗
while n < len(list123):
dummylist = [len(r.split('abc')) for r in list123]
if dummylist[n] <= 2:
print 'true'
list123 = [i.replace('abc',' q ') for i in list123]
n=n+1
elif dummylist[n] > 2:
print 'false'
list123 = [i.replace('abc',' q ') for i in list123]
n=n+1
谢谢!你知道吗
首先,这里的
while
循环是错误的选择,将split
放在内部似乎很可笑。你知道吗第二,如果
list123
中的任何项的部分少于两部分,则不希望replace
所有的项;只在迭代每个索引i
时修改list123[i]
。你知道吗第三,要只删除最后的
'abc'
,可以使用str.rsplit
并指定最多一个拆分,然后str.join
与'q'
一起返回。你知道吗这要整洁得多:
这给了我
list123 == ['habcuxabc929q', 'tq', 'q', 'jabcuq9']
。你知道吗如果我没听错的话,看起来你想接近:
相关问题 更多 >
编程相关推荐