2D リストをループしようとしていますが、要因に応じて、行に追加するか、行全体を削除します
tempX
特定の値に一致する場合、リストの現在の行に追加する必要がありますtempX
。その値と一致しないtempY
場合は、行全体をリストから削除する必要があります。tempX
これがこれまでのコードです。
aList = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
i = 0
for a, b, c, d, e in aList[:]:
tempC = c
tempD = D
tempX = tempC * 2 # These are just a placeholders for another calculation
tempY = tempD * 2
if tempX <= 10:
aList[i].append(tempX)
aList[i].append(tempY)
else:
del aList[i]
i += 1
期待される結果: aList = [[6, 7, 8, 9, 10, 16, 18], [11, 12, 13, 14, 15, 26, 28]]
代わりに、これは
ValueError: too many values to unpack
編集
いくつかの調査の後、私はこの解決策にたどり着きました。
キーは次のとおりですbList = aList[::-1]
。これにより、リストが逆順に結合され、ジャッキなしで車からタイヤを効果的に外そうとした前の例の状況が解消されます。
aList = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30]]
bList = aList[::-1]
i = 0
for a, b, c, d, e in bList:
tempC = c
tempD = d
tempX = tempC * 2
tempY = tempD * 2
if tempX >= 50:
bList[i].append(tempX)
bList[i].append(tempY)
else:
del bList[i]
i += 1
print bList
2行おきにスキップしているという事実を除けば、これは良い解決策です。行をスキップする原因がよくわかりません。
[[26, 27, 28, 29, 30, 56, 58], [21, 22, 23, 24, 25], [16, 17, 18, 19, 20], [11, 12, 13, 14, 15], [6, 7, 8, 9, 10], [1, 2, 3, 4, 5]]
[[26, 27, 28, 29, 30, 56, 58], [16, 17, 18, 19, 20], [11, 12, 13, 14, 15], [6, 7, 8, 9, 10], [1, 2, 3, 4, 5]]
[[26, 27, 28, 29, 30, 56, 58], [16, 17, 18, 19, 20], [6, 7, 8, 9, 10], [1, 2, 3, 4, 5]]
[[26, 27, 28, 29, 30, 56, 58], [16, 17, 18, 19, 20], [6, 7, 8, 9, 10]]
期待される結果: bList = [[26, 27, 28, 29, 30, 56, 58]]
他のすべての行を削除する必要があります