簡體   English   中英

使用python搜索將其添加到元組列表

[英]add to a list in tuple with search in python

我有一個包含兩個主要字符串( str1str2 )和一個字符串列表( strlist )的類( cls

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”))

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不同,這將創建一個新的元組,因此效率不如將所有舊的引用復制到新的元組中一樣。

由於clslist未排序,因此您的搜索將需要是線性的。

例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM