0

特定の要素を削除したいリストがあります。 for ループを作成し、この for ループに del my list[i] を配置しました。

prule0から159そのサイズまでの文字列として数字のようなものを含む文字列のリストです11154

def getind(li)
    ret = {}
    for i, x in enumerate(li):
        if x not in ret:
            ret[x] = []
        ret[x].append(i)
    return ret
dups = getind(prule)
for n in dups.get('159',[]):
    del rulelines[n]

list assignment index out of range私が推測しているこれをしばらくすると、リストが更新されるためです。forループが終了するまで更新されないように使用できるものはありますか

4

2 に答える 2

0

リストを逆方向に参照する必要があります。

for x in range(subjectlength - 1, -1, -1):
    del my_list[x]
于 2013-04-04T16:29:23.127 に答える
0

ここの回答で修正したように

dups = getind(prules)
indexes = dups.get('156',[])
rulelines = [rulelines[i] for i in range(len(rulelines[:])) if i not in indexes]

あなたの問題を解決するものでなければなりません。

于 2013-04-04T16:35:07.697 に答える