저는 프로그래밍에 완전히 익숙하지 않습니다 (2 개월 미만 - 독학). 목록의 빈도가 필요한 프로젝트에 참여하고 있습니다. 목록의 첫 번째 두 인덱스에 의해 각 내부 목록에.목록의 목록에서 각 항목의 두 번째 첫 번째 값으로 빈도를 최적화하십시오.
여기 내 목록이다
X = [ '블록'3], [ '거리', 2], [ '램프', 1], [ '거리', 2] [ '산업', 3], [ '공원', 2], [ '공원', 3], [ '산업', 3], [ '블록', 3], [ '거리', 2] [ '램프', 1], [ '거리', 2], [ '산업' 3], [ '공원에서'2]
는 각각의 내부에서의 최초 값은 TITLE 인 두 번째는 통상적 인 값입니다.
당신이 볼 수 있듯이, 그 중 일부는 반복 (중복)되는 것을 볼 수 있습니다.
p = [ '블록', 3, 2], [ '거리', 2, 4], [ '램프'
은이 같은리스트의 출력에서 원하지 1, 2], [ '산업' 3,3], [파크 ', 2, 2], ['공원에서 '3, 1]
주파수가의 제 3 값 WITH 내부리스트의 x, 외부리스트 x. 그래서 여기
내 비 파이썬 (아마도 무딘) 접근 방식 :
x = [['block', 3], ['street', 2], ['lamp',1], ['street', 2], ['industrial', 3], ['park', 2], ['park', 3], ['industrial', 3], ['block', 3], ['street', 2], ['lamp',1], ['street', 2], ['industrial', 3], ['park', 2]]
p = []
for a in x:
p.append(a), a.append(x.count(a))
print p # checkpoint
i= 0
while i < len(p):
for j in range(len(p)):
if i == j:
print i, ' = ', j
break
else:
if p[i][:2] == p[j][:2]:
print p[i][:2], '==', p[j][:2]
p.pop(i)
i = 0
j=0
break
i = i+1
print p # the list of lists I'm desired
하지만 내 프로젝트에 대한
, 다른 기능 다음에이 기능이 그들에 비해이 일이 있기 때문에 높은 실행 시간, 특히 광대 한 입력 데이터 세트의 경우.
지식이 부족하여 필자가 작성한 코드를 최적화 할 수 없었기 때문입니다.
그래서이 작업을 수행하는 데 더 빠르고 더 평범한 방법이 있습니까?
답해 주셔서 감사합니다. 코드가 완벽합니다. 그러나 이것을 보았을 때 나는 어떻게되는지 알지 못합니다. 당신의 접근 방식과 비슷한 코드를 작성하는 사고 코딩 능력을 어떻게 향상시킬 수 있습니까? 시간에 따라 달성해야하는이 무엇입니까? –
@AfshinSalehi 많은 연습과 비슷한 문제가 있습니다. –