Python3 + Boto3を使ってAWSのSecurityGroupを管理するScriptを書いているのですが、絞り込みを行う際に意図しない挙動となり困っています。
{GroupName: default}か、{GroupName: vpc-***-Developers}となっているSGを除外して処理しようとしています。
Script a
import boto3 import re a = list() b = ec2.describe_security_groups()['SecurityGroups'] len(b) //104 for i in b: if i['GroupName'] == 'default' or re.match('vpc-.*-Developers', i['GroupName']): a.append(i) len(a) //31
こちらは意図した挙動になっていて、除外すべき要素を全て抽出できています。
しかし…
Script B
a = ec2.describe_security_groups()['SecurityGroups'] len(a) //104 for i in a: if i['GroupName'] == 'default' or re.match('vpc-.*-Developers', i['GroupName']): a.remove(i) len(a) //80
Listから該当の要素を除去しようとするこちらのScriptだと、なぜか7要素くらいListから正しく除去されずに残ってしまいます。
同じif文
を使用しているにも関わらず、なぜこのような差異が生まれてしまうのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。