찾다

 >  Q&A  >  본문

python处理文本信息

有一个文本信息如下:

42 453926 Stormwriter restored undeleted 61.1.28.140
44 425968 61.1.28.140
42 425967 Mintguy restored undeleted 61.11.252.22
43 419840 61.11.252.22

我做的是需要根据第一列的这个序号的数据来找对应的数据,像这种有着相同序号的行,他们对应的第二列的ID数据就是对应的,我需要找到这样一对一对的 ID 数据。就这个例子来说就是 453926 跟 425967 是对应的,输出:

453926 425967

而也会有多个相同序号的情况。比如:

42 453926 Stormwriter restored undeleted 61.1.28.140
44 425968 61.1.28.140
42 425967 Mintguy restored undeleted 61.11.252.22
43 419840 61.11.252.22
42 419809 TimStarling

就是需要记录多次,而且是跟最后一个相同序号对应,拿这个例子来说,就是记录第一个42跟最后一个42的对应ID,然后同时也要记录中间那个 42 跟最后一个 42 的 ID,输出这样:

453926 419809(restored行的ID是453926)
425967 419809(restored行的ID是425967)

我开始想的是用字典,但是字典也就只能保留到最后一个相同的序号,怎么做才能让中间的相同序号也能输出对应的呢TUT

我的伪代码如下:

dict={}
if xxx: #只是一个判断处理的条件
   flag_number =line.split()[0]
   id = line.split()[0]
   next()
elif line.split()[0]==flag_number:
   dict[id]=line.split()[1]

但是这个代码只能输出第一个跟最后一个相同的序号,如何修改才能也让中间的相同序号跟最后一个序号也输出出来呢

巴扎黑巴扎黑2889일 전290

모든 응답(1)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-17 17:52:50

    사전을 사용하여 먼저 수집할 수 있습니다.

    으아악

    출력:

    으아악

    또는:

    으아악

    이 코드에 대해 간단히 설명해주세요:

    으아악

    위 줄은 생성기 표현식(줄여서 genexp)입니다. 목록 이해와 유사하지만 실제 데이터와 목록을 즉시 생성하지 않으며 데이터 항목을 반복하거나 얻을 때까지만 기다립니다. 순차적으로 생성됩니다. 이는 자원 활용이 상대적으로 효율적이라는 것을 의미합니다.

    여기에서 생성된 생성기는 두 요소로 구성된 튜플을 순차적으로 생성할 수 있습니다. 두 요소 모두 ID이며 이는 정확히 ID 쌍입니다(첫 번째 요소는 마지막이 아닌 각각의 ID이고 두 번째 요소는 마지막 요소입니다. id).

    내용:

    으아악

    은 id 쌍을 순차적으로 생성하고 Tuple unpacking을 이용하여 sideid에 값을 병렬로 할당하여 최종적으로 출력하는 것입니다.


    data:

    으아악

    결과:

    으아악

    회신하다
    0
  • 취소회신하다