文档内容如下:
(数据对) (信息)
----------------- ------------------------
1 2 3 4 5
----------------- ------------------------
pr333 sd23a2 thisisa 1001 1005
pr333 sd23a2 sentence 1001 1005
pr33w sd11aa we 1022 1002
pr33w sd11aa have 1022 1002
pr33w sd11aa adream 1033 1002
......
第 1, 2 列作为一个 数据对
如果前两列相同,判断后面的是否相同,如果不同就连接起来,合并成一行
如同下面的效果:
pr333 sd23a2 thisisa|sentence 1001 1005
pr33w sd11aa we|have|adream 1022|1033 1002
....
小白,不懂怎么做,只能想到用字典,好像又行不通,求各位大神帮忙
출력 순서를 유지하려면
OrderedDict
을 사용해야 합니다. 키는OrderedDict
을 사용하여 순서를 유지합니다. 엉망이 되려면list
을 사용하여 순서를 유지하세요.set
으아악이 코드에 대한 모든 고려 사항을 설명하세요.
첫 번째는 순서입니다. 여기서 순서는 두 부분으로 구성됩니다. 하나는 출력 라인의 순서이고 다른 하나는 항목이 병합된 후의 순서입니다. 우리는 다음을 관찰했습니다:
으아악다음으로 변경:
으아악출력 라인의 순서를 고려해야 합니다. pr333이 pr33w보다 앞에 옵니다
프로젝트 병합 후 순서를 고려해야 합니다. thisisa가 문장 앞에 옵니다
이것은 우리가 사용하는 데이터 유형이 순서를 유지할 수 있어야 한다는 것을 의미합니다
둘째는 속도입니다. 효율성을 위해서는 매핑 유형을 사용하는 것이 좋습니다.
세 가지 고려 끝에 moling3650의 말대로
OrderedDict
가 좋은 선택입니다. 이렇게 하면 라인 출력 문제를 해결할 수 있지만 병합 프로젝트에서는 값이 아닌 키만 사용하면 되므로OrderedDict
를 사용하는 것이 아쉽습니다. 그러나 현재 표준 라이브러리에는OrderSet
옵션이 없습니다. 그래서 나는 그것을 해야 한다.OrderedDict에 대한 자세한 내용은 OrderedDict를 참조하세요
사실 타사 라이브러리인 OrderedSet
이 있거나 직접 구현할 수도 있습니다. OrderedSet(Python 레시피)
마지막으로 linke7en은 이런 문서 처리 문제에 대해 아주 좋은 점을 가지고 있습니다. 동시에 읽고 쓸 수 있다면 읽기와 처리를 동시에 하는 것이 확실히
효율적입니다 (한 번 방문하면 문서 처리만 하면 되기 때문에)() 및討論請見評論部分 moling 大的觀點
자원 절약(출력이 즉시 완료되므로 데이터 저장을 위한 공간을 낭비할 필요가 없습니다). 그러나 중복된 데이터 쌍이 여러 행에 걸쳐 나타날 수 있다는 점을 고려하면 여전히 안정성을 보장하기 위해 더 많은 리소스를 소비해야 합니다.코드(Python3): 으아악
코드 부분에 대해서도 설명하겠습니다(제 글이 잘 못 되었을 수도 있지만, 경험을 공유해 드릴 수 있습니다).
수업 신청입니다.
Python 프로그래머로서 우리는slice
시퀀스 유형 슬라이싱에 익숙해야 합니다. 으아악
은 실제로 다음과 같이 쓸 수 있습니다:으아악
어떤 혜택이 있나요?데이터 쌍과 기타 데이터를 추출하려고 했습니다. 으아악
그러나 이 방법은 실제로 읽을 만큼 명확하지 않습니다. 따라서 이 두 범위에 이름을 지정할 수 있습니다.으아악
더 우아하고 읽기 쉬운 방식으로의 값을 얻을 수 있습니다.
items
두 번째는
입니다. 이 기능은 매우 실용적입니다. 예를 들면 다음과 같습니다.
키 값setdefault
으아악이 사전(또는 다른 일치하는 매핑 유형)에 있으면
마지막으로 공유하고 싶은 것은 중첩된 튜플의 분해입니다.key
을 반환합니다. 그렇지 않으면 반환 시 자동으로 사전에 새 키-값 쌍dic[key]
이 삽입되고 .dic[key] = default_value
default_value
으아악
이 기술은 중첩된 튜플을 해체하는 데 쉽게 사용할 수 있습니다.
말이 너무 많다고 욕 안해주셔서 다들 감사합니다...
팬더를 사용하는 것이 더 편리하다고 느끼시나요?
으아악네 줄이면 문제가 해결됩니다
먼저 문서를 example.txt로 저장했습니다
으아악