0

我有一个类(cls),它有 2 个主要字符串(str1str2)和一个字符串列表(strlist

python将strlist变成一个元组,所以当我想附加到它时我使用

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

可能不是最好的选择,但它是我唯一能在对 python 了解不多的情况下做出的选择

现在我让事情变得更复杂我有 cls 列表(clslist),我想向 strlist 添加另一个字符串,其中 str1 = A && str2 = B

如何创建将在 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"))

我想在 clslist 中找到 str1 = aaa 和 str2 = bbb 的 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 回答