有一个文本信息如下:
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]
但是这个代码只能输出第一个跟最后一个相同的序号,如何修改才能也让中间的相同序号跟最后一个序号也输出出来呢
사전을 사용하여 먼저 수집할 수 있습니다.
으아악출력:
으아악또는:
으아악이 코드에 대해 간단히 설명해주세요:
으아악위 줄은 생성기 표현식(줄여서 genexp)입니다. 목록 이해와 유사하지만 실제 데이터와 목록을 즉시 생성하지 않으며 데이터 항목을 반복하거나 얻을 때까지만 기다립니다. 순차적으로 생성됩니다. 이는 자원 활용이 상대적으로 효율적이라는 것을 의미합니다.
여기에서 생성된 생성기는 두 요소로 구성된 튜플을 순차적으로 생성할 수 있습니다. 두 요소 모두 ID이며 이는 정확히 ID 쌍입니다(첫 번째 요소는 마지막이 아닌 각각의 ID이고 두 번째 요소는 마지막 요소입니다. id).
내용:
으아악은 id 쌍을 순차적으로 생성하고 Tuple unpacking을 이용하여
sid
와eid
에 값을 병렬로 할당하여 최종적으로 출력하는 것입니다.
으아악data
:결과:
으아악