有一个文本信息如下:
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]
但是这个代码只能输出第一个跟最后一个相同的序号,如何修改才能也让中间的相同序号跟最后一个序号也输出出来呢
Boleh menggunakan kamus, kumpulkan dahulu:
Output:
atau:
Beritahu saya sedikit tentang kod ini:
Barisan di atas ialah ungkapan penjana (pendek kata genexp Ia serupa dengan pemahaman senarai, tetapi ia tidak akan menjana data dan senarai sebenar dengan segera dihasilkan secara berurutan. Ini bermakna penggunaan sumber adalah agak cekap.
Penjana yang dijana di sini boleh menjana tuple dua elemen dalam urutan Kedua-dua elemen ialah id, iaitu pasangan id (elemen pertama ialah setiap id bukan terakhir, dan elemen kedua ialah yang terakhir. id.
Bagi:
adalah untuk menjana pasangan id dalam urutan dan menggunakan tuple unpacking untuk menetapkan nilai kepada
sid
daneid
secara selari, dan akhirnya output.data
:Keputusan: