我是python的新手,对于向量化代码有个问题要问
def makeNames2(nList):
for nLi in nList:
nLIdx=[i for i,j in enumerate(nList) if j==nLi]
if nLIdx.__len__()>1:
for i,j in enumerate(nLIdx):
if i>0: nList[j]=nList[j]+str(i)
return nList
它执行以下操作:
>>> nLTest=['asda','asda','test','ada','test','yuil','test']
>>> print(makenames2(nLTest)
['asda', 'asda1', 'test', 'ada', 'test1', 'yuil', 'test2']
该代码工作正常,但我想知道是否有一种方法可以对for
循环进行矢量化处理?
编辑
感谢所有三个答案。这正是我感兴趣的,并且希望选择所有答案。我不能选择多个,但所有这些都能工作。
nLTest, items = ['asda','asda','test','ada','test','yuil','test'], {}
for idx, item in enumerate(nLTest):
nLTest[idx] += str(items.setdefault(item, 0) or "")
items[item] += 1
print nLTest
输出
['asda', 'asda1', 'test', 'ada', 'test1', 'yuil', 'test2']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句