0

2 つのメイン文字列 ( str1str2 ) と文字列のリスト ( strlist )を持つクラス ( cls ) があります。

Pythonはstrlistをタプルにするので、追加したいときに使用します

tmp=list(strlist)
tmp.append(addToList)
self.list=tmp

最良の選択肢ではないかもしれませんが、Pythonの知識が乏しい私が作成できる唯一の選択肢です

今、私は物事をより複雑にします。cls のリスト ( clslist ) があり、str1 = A && str2 = B の strlist に別の文字列を追加したい

clslist で一致を検索する検索を作成する方法と、見つかった場合は新しい文字列を strlist に追加する方法

編集1

class cls ():
    def __init__ (self,str1,str2,strlist):
        self.str1 = str1
        self.str2 = str2 
        self.strlist = strlist

そしてメイン

def main():
    clslist =[]
    clslist.append(cls ("aaa","bbb",("123","456"))

str1 = aaa および str2 = bbb である clslist 内の cls を検索し、str リストに別の文字列を追加したい

だから私はこのようになります ("aaa","bbb",("123","456","789"))

4

2 に答える 2

3

Python は strlist をタプルにしません。タプルを渡しています。リストが必要な場合は、[]代わりに使用します()

clslist.append(cls("aaa", "bbb", ["123","456"])

clslist の検索は簡単です

for item in clslist:
    if item.str1 == A and item.str2 == B:
        # do something
        item.strlist.append(otherstring)

タプルを拡張する必要がある場合は、次のように行うことができます

>>> ("foo", "bar")+("baz",)
('foo', 'bar', 'baz')

手段の,前はタプルで、タプルを追加できます。とは異なり、これは新しいタプルを作成するため、すべての古い参照を新しいタプルにコピーする必要があるため効率的ではありません。)("baz",)list.append

于 2012-11-14T01:30:55.230 に答える
1

clslist はソートされていないため、検索は線形である必要があります。

例えば:

for i in clslist:
    if i.str1 == A and i.str2 == B:
        i.strlist.append(whatever)
于 2012-11-14T01:31:23.703 に答える