2

これが私がやろうとしていることです。その中に要素として文字列を含むリストがあります。今、私はそれを使って2つ以上のことをしたいと思いました。

  1. クラス内に空のリストを作成します。
  2. リスト内のすべての要素を操作して、作成したempytリストに追加します。

これまでの私のコード。

class aer(object):
  def __init__(self):
    self.value = []
  def rem_digit(self,s):
    self.value.append(re.sub(" \d+"," ",s))
  def to_lower(self,s):
    self.value.append(self.s.lower())

誰かが私が犯している間違いを私に指摘してくれるなら、それは素晴らしいことです。また、クラス内で作成した「リスト」へのアクセス方法も説明します。

サンプルリスト:

mki = ["@tenSjunkie We're sorry for the inconvenience. Please call the Guest Service Desk using this link http://t.co/8Zv8DFwbbu and your receipt.",
 "@lindz_h We're sorry for the inconvenience. Please call the Guest Service Desk using this link http://t.co/Ak9fnazHZN and your receipt."]

前回よりも改善された、というか、CLASSの前で敗北したと言う

def some_mani(old_list):
    new_list = []
    for i in range(0,len(old_list)):
        new_list.append(re.sub(" \d+"," ",old_list[i]).lower())
    return new_list

誰かがCLASSでこれを構築するのを手伝ってくれるかどうかまだ疑問に思っています。

4

1 に答える 1

0

なぜこれが必要なのかを正確に理解するのに苦労していますが、文字列のリストと、単純な文字列操作を実行して結果をそのリストに追加するためのいくつかのメソッドを含むクラスが必要なようです。その仮定に基づいて、ここにいくつかのコードがあります:

class MysteriousStringContainer(object):
    def __init__(self):
        self.values = []

    def remove_digits(self, s):
        self.values.append(re.sub("\d+", " ", s))

    def to_lower(self, s):
        self.values.append(s.lower())

MysteriousStringContainer を初期化して、そのメソッドの呼び出しを開始できます。

>>> m = MysteriousStringContainer()
>>> print m.values
[]
>>> for s in mki:
...     m.remove_digits(s)
...
>>> print m.values
["@tenSjunkie We're sorry for the inconvenience. Please call the Guest Service Desk using this link http://t.co/ Zv DFwbbu and your receipt.", "@lindz_h We're sorry for the inconvenience. Please call the Guest Service Desk using this link http://t.co/Ak fnazHZN and your receipt."]

ご覧のとおり、数字は削除されており、結果の文字列は で使用できますm.values。ただし、これを使い続ける前に強調しておきたいのは、これは、何をしようとしても、ほぼ間違いなくひどい方法であるということです。上記のコードは、クラスがラップされていない場合にはるかに適切に記述されます。

>>> nodigits = re.sub("\d+", " ", mki[0])
>>> print nodigits
"@tenSjunkie We're sorry for the inconvenience. Please call the Guest Service Desk using this link http://t.co/ Zv DFwbbu and your receipt."

ここでは、mkiリストに元の文字列がまだあり、数字のない新しい文字列がnodigits変数として保存されます。奇妙で直感的でないクラス設定を使用して既存の機能を難読化する理由は思いつきませんが、それが必要な場合は、上記のコードでそれができると思います。

于 2013-03-06T23:48:56.933 に答える