我正在制作一些串列,我需要在壓縮之前排除一些案例。串列中的每個專案都有類似的編碼“A001_AA”、“A002_AA”等。我想做的是壓縮串列,同時洗掉它們重復的地方。我需要能夠根據字串中的前 4 項洗掉它們。
下面我包含了我希望我的輸出看起來有幫助的內容。
listA = "A001_AA","A002_AA" "A003_AA","A004_AA"
listB = "A001_BB","A002_BB" "A003_BB","A004_BB"
listZipped = ("A001_AA","A002_BB"),("A001_AA","A003_BB"),("A001_AA","A004_BB"), ("A002_AA","A001_BB") etc
所以我基本上需要能夠做類似的事情:
for i in listA:
for x in listB:
if i[first 4 letters] == x[first 4 letters]:
do not add to zipped list
我希望這是有道理的
uj5u.com熱心網友回復:
這行得通!如果有任何問題,請告訴我。
listA = ["A001_AA", "A002_AA", "A003_AA", "A004_AA"]
listB = ["A001_BB", "A002_BB", "A003_BB", "A004_BB"]
listZipped = []
for i in listA:
for j in listB:
if i[0:4] != j[0:4]:
listZipped.append((i, j))
print(listZipped)
或者,如果您發現這更具可讀性,您可以洗掉嵌套for回圈并將其替換為
listZipped = [(i, j) for i in listA for j in listB if i[0:4] != j[0:4]]
輸出
[('A001_AA', 'A002_BB'), ('A001_AA', 'A003_BB'), ('A001_AA', 'A004_BB'), ('A002_AA', 'A001_BB'), ('A002_AA', 'A003_BB'), ('A002_AA', 'A004_BB'), ('A003_AA', 'A001_BB'), ('A003_AA', 'A002_BB'), ('A003_AA', 'A004_BB'), ('A004_AA', 'A001_BB'), ('A004_AA', 'A002_BB'), ('A004_AA', 'A003_BB')]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455714.html
