에서 읽은 여러 목록에서 반복 찾기 제목이 혼란 스럽지만, 다음 CSV 파일 ('names.csv')로 작업한다고 가정 해 보겠습니다.CSV 파일 (Python)
name1,name2,name3
Bob,Jane,Joe
Megan,Tom,Jane
Jane,Joe,Rob
제 질문은 최소한 3 번 발생하는 문자열을 반환하는 코드를 만드는 방법입니다. 그래서 결과는 적어도 3 번 발생하기 때문에 'Jane'이어야합니다. 정말 여기에 혼동 .. 아마 일부 샘플 코드는 내가 더 잘 이해하는 데 도움이 될까요?
지금까지 내가 가진 :
는import csv
reader = csv.DictReader(open("names.csv"))
for row in reader:
names = [row['name1'], row['name2'], row['name3']]
print names
이 반환 : 여기에서 가야합니까
['Bob', 'Jane', 'Joe']
['Megan', 'Tom', 'Jane']
['Jane', 'Joe', 'Rob']
? 아니면 내가 잘못 생각할 것인가?
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> rows = [['Bob', 'Jane', 'Joe'],
... ['Megan', 'Tom', 'Jane'],
... ['Jane', 'Joe', 'Rob']]
...
>>> for row in rows:
... for name in row:
... d[name] += 1
...
>>> filter(lambda x: x[1] >= 3, d.iteritems())
[('Jane', 3)]
: 나는 이런 식으로 할 거라고 .. (물론, 모두 프로그래밍), 그래서 내가 뭘하는지 단서에 가까운이 파이썬에
건배
고마워요! 이것은 잘 작동하지만 표제 행을 무시했기 때문에 전체 CSV 파일을 읽습니다. CSV 파일의 3 행 중 2 행에서만 특정 이름이 몇 번 나오는지 계산하려면 어떻게해야합니까? ? CSV 파일에는 'name1', 'name2', 'name3'이 포함되어 있지만 'name1'및 'name3'행의 이름 만 계산하므로 'name2'행이 모두 무시됩니다. – New2Python
의미가 많이 있습니다. 나는 마침내 그것을 지금 얻는다. :) 다시 한번 감사드립니다. – New2Python