我有一個串列。每一行都是一個帶有數字的串列。這些數字可能會在接下來的行中重復出現。
我想為每一行找到一個不會在其他行中重復出現的數字。
我想為每一行找到一個單一的數字,這個數字不會在串列的其他部分重復出現。
我把串列保存在一個 .csv 檔案中,以使它更便于攜帶。這里是它的第一行。
10000241;10006041;102458567。 102463076;102465209;102468399;102471447;;;;;;;;;;
10000241;10006041;102457597;102458567; 102459006;102463076;102471447;;;;;;;;;;
10000241;10000311;10059021;102456340; 102458959;102460803;102464618;102465620;;;;;;;;;
10000241;10000311;102459290;102464008; 102464618;102467881;102468156;;;;;;;;;;
10000241;10000311;102457895;102458959;102459289; 102459290;102461512;102464618;102468503;;;;;;;;
1000021;10000241;102457597;102458567; 102466421;102466422;102475670;;;;;;;;;;
10000241;102468922;102470951; 102471518;;;;;;;;;;;;;
10000241;102457537;102458526;102460609;102461735; 102462564;102465464;102470554;102470715;;;;;;;;
因此,例如,第一行的第一個值(10000241)已經出現在第二行,所以這個值不應該被選擇。我可以看到102465209這個值在接下來的幾行中沒有重復,所以這個值應該被選擇。對每一個子順序的行都進行同樣的操作。
結果應該是這樣的:
102465209。
102471447
...
我可以看到,應該有某種型別的迭代器來檢查每一個元素和每一行的重復情況,但我不能完全得到解決。
應該注意的是,每行應該有一個值,否則應該有一個警告資訊。
uj5u.com熱心網友回復:
觀察一下吧。
你可以嘗試做這樣的事情:
lines_to_read = ''10000241;10006041;102458567;102463076;102465209;102468399;102471447;;;;;;;;;;
10000241;10006041;102457597;102458567;102459006;102463076;102471447;;;;;;;;;;
10000241;10000311;10059021;102456340;102458959;102460803;102464618;102465620;;;;;;;;;
10000241;10000311;102459290;102464008;102464618;102467881;102468156;;;;;;;;;;
10000241;10000311;102457895;102458959;102459289;102459290;102461512;102464618;102468503;;;;;;;;
1000021;10000241;102457597;102458567;102466421;102466422;102475670;;;;;;;;;;
10000241;102468922;102470951;102471518;;;;;;;;;;;;;
10000241;102457537;102458526;102460609;102461735;102462564;102465464;102470554;102470715;;;;;;;;'''
lines_to_read = lines_to_read.splitlines()
list_to_fill = []
for x in lines_to_read:
list_to_fill.append(x.split(';')
final_list = []
for element in list_to_fill:
for item in element:
if item:
final_list.append(item)
final_list = set(final_list)
final_list
如果你已經在使用一個串列,你可以跳過前兩行代碼。
希望是有用的。
CodePudding
你可以使用python的set:
l = [10000241,10006041, 102458567, 102463076,102465209,102468399,102471447]
l2 = [10000241,10006041,102457597, 102458567,102459006,102463076,102471447]
list(set(l)-set(l2))
>> [102465209, 102468399]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/306909.html
標籤:
下一篇:獲得2張地圖之間的差異的飄逸
