[英]add to a list in tuple with search in python
我有一個包含兩個主要字符串( str1 , str2 )和一個字符串列表( 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.