저는 파이썬을 처음 접했고 간단한 질문이있었습니다.
목록 목록이 있습니다.
tempList = [ ['a', 'b', 'c', 'a', 'd', 'b', 'a'], ['a', 'c', 'd', 'c', 'd'] ]
예를 들어 증분 번호로 모든 후속 중복의 이름을 바꾸고 싶습니다.
tempList= [ ['a', 'b', 'c', 'a_1', 'd', 'b_1', 'a_2'], ['a', 'c', 'd', 'c_1', 'd_1']]
플랫 목록에 대해이 작업을 수행하는 방법을 알고 있지만 목록 목록에 대한 솔루션을 찾을 수 없습니다. 누구든지이 작업을 수행하는 방법에 대한 지침을 줄 수 있습니까? 내가 시도한 코드는 다음과 같으며 작동하지 않는 것 같습니다.
for i in range(0, len(tempList)):
counts = Counter(tempList[i])
print(Counter(tempList[i]))
val = 0
for s,num in counts.items():
if num > 1:
counts[s] = val
val += 1
else:
counts[s] = 0
tempList = [x if counts[x]==0 else x + str(counts[x]) for x in tempList[i]]
다음은 주문을 보존하는 가능한 솔루션입니다.
def foo(l):
d = {}
for i in range(len(l)):
if l[i] in d:
d[l[i]] += 1
l[i] = l[i] + '_' + str(d[l[i]])
else:
d[l[i]] = 0
return l
list_of_lists = [ ['a', 'b', 'c', 'a', 'd', 'b', 'a'], ['a', 'c', 'd', 'c', 'd'] ]
list_of_lists = [foo(x) for x in list_of_lists]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다