关于字符串:使用python中的搜索添加到元组中的列表

add to a list in tuple with search in python

我有一个类(cls),有两个主字符串(str1,str2)和一个字符串列表(strlist)

python使strlist成为一个元组,因此当我想附加到它时,我使用

1
2
3
tmp=list(strlist)
tmp.append(addToList)
self.list=tmp

也许不是最好的选择,但它是我对python知之甚少的唯一选择。

现在我让事情变得更复杂了我有cls列表(cls list),我想在strlist中添加另一个字符串,其中str1=a&;str2=b

如何创建将在clslist中搜索匹配项的搜索,如果找到,将向strlist添加新字符串

编辑1

1
2
3
4
5
class cls ():
    def __init__ (self,str1,str2,strlist):
        self.str1 = str1
        self.str2 = str2
        self.strlist = strlist

和主要

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

我想在cls list中找到cls,其中str1=aaa和str2=bbb,然后在str列表中添加另一个字符串。

所以我会这样结束("AAA","BBB","123","456","789"))


python不使strlist成为元组,而是传递一个元组。如果您想要一个列表,只需使用[]而不是()

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

搜索你的clslist很容易

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

如果确实需要扩展元组,可以这样做

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

)之前的,表示("baz",)是一个元组,可以添加元组。与list.append不同,这将创建一个新的元组,因此效率不如将所有旧引用复制到新元组所需的效率。


因为clslist是未排序的,所以您的搜索将需要是线性的。

例如:

1
2
3
for i in clslist:
    if i.str1 == A and i.str2 == B:
        i.strlist.append(whatever)