初心者の質問で申し訳ありませんが、クラスを扱うのはこれが初めてです。私が作成しようとしているクラスは、辞書内のすべてのキーと値に対して正規表現の検索と置換を実行することを目的としています。特定の検索と置換は、インスタンス化時に定義されます。
私が持っている2つの問題があります。最初の問題は、クラスの各インスタンスが新しい辞書を受け入れる必要があることです。インスタンスの作成時に指定できる一般的な辞書を受け入れるクラスを作成する方法がわかりません。2 番目の問題は、私が持っているクラスが機能していないことです。TypeError: expected string or buffer
クラス行にエラー メッセージが表示されますv = re.sub(self.find,self.replace,v)
。
入力辞書ごとに 1 つずつ、作成する 3 つのインスタンスがあります: input_iter1
、input_iter2
、およびinput_iter3
。
クラスは次のとおりです。
class findreplace:
values = []
keys = []
def __init__(self, find, replace):
self.find = find
self.replace = replace
def value(self):
for k,v in input_iter1.items():
v = re.sub(self.find,self.replace,v)
findreplace.values.append(v)
def key(self):
for k,v in input_iter1.items():
k = re.sub(self.find,self.replace,k)
findreplace.keys.append(k)
以下にインスタンスを示します。
values1 = findreplace('[)?:(]','')
values1.value()
values2 = findreplace(r'(,\s)(,\s)(\d{5})({e<=1})',r'\2\3')
values2.value()
keys1 = findreplace(r'(?<=^)(.+)(?=$)',r'(?:\1)')
keys1.key()
keys2 = findreplace(r'(?=$)',r'{e}')
keys2.key()
print values
print keys
これら 2 つの問題を回避する方法について何か洞察をお持ちの方がいらっしゃいましたら、お聞かせいただければ幸いです。ありがとう!