各インデックスがデータ ポイントを表す CSV を読み取ることによって作成されたリストがいくつかあります。そう:
# names = ['name1','name2', 'name3', 'name4']
# data1 = ['1', '2', '3', '4']
# data2 = ['a', 'b', 'c', 'd']
次と同等です。
name1,1,a
特定のデータ ポイントを削除する必要がありますが、最も簡単な方法はインデックスによるものと思われます。
del names[1]
del data1[1]
del data2[1]
# names = ['name1', 'name3', 'name4']
ただし、インデックスを使用してリストを反復処理しており、ループが終了するまでそれらを変更したくありません。私の解決策は、削除するアイテムを一意の文字列に置き換えてから、後で削除することです。
names[1] = 'DELETEME'
data1[1] = 'DELETEME'
data2[1] = 'DELETEME'
# names = ['name1','DELETEME', 'name3', 'name4']
これは健全な慣習ですか、それとも何か他のことをするべきですか?
編集うわー、すべての応答に感謝します。さまざまなアプローチをテストするには、少し時間がかかります。尋ねた人のために、追加のコードスニペットを次に示します。
# read CSV file. create lists
names = ['name1', 'name2', 'name3', 'name4']
data1 = [1, 32.018, 3, 4]
data2 = [5, -22, 6, 7]
# master list of names to look for
master = ['name2', 'name5']
for i,n in enumerate(names):
# find intersections with master list, get indices
# ...
matches = [1] # index of 'names2'
# iterate through matches
for m in matches:
# specify a criterion for deleting/modifying data points
# example:
if data1[m] == 32.018 and data2[m] == -22:
del names[m]
del data1[m]
del data2[m]
# specify additional criteria using additional if statements
# ...