我有一个包含字符串列表的类。说:
ClassName:
- list_of_strings
我需要强制执行此字符串列表包含唯一元素。不幸的是,我无法将此list_of_strings更改为其他类型,例如set。
在addToList(str_to_add)
函数中,我想保证字符串唯一性。我该怎么做才能做到最好?是否可以添加要添加到列表中的字符串,转换为集合,然后返回到列表,然后将其重新分配给对象?
以下是我需要更新的方法:
def addToList(self, str_to_add):
self.list_of_strings.append(str_to_add)
谢谢!
答案 0 :(得分:22)
def addToList(self, str_to_add):
if str_to_add not in self.list_of_strings:
self.list_of_strings.append(str_to_add)
答案 1 :(得分:4)
使用in
检查列表中是否存在字符串,或者并行使用set
来检查和添加。
答案 2 :(得分:1)
您确实可以执行您所描述的list-to-set-to-list操作,但您也可以使用in
运算符检查该元素是否已经在列表中,然后再添加它。
答案 3 :(得分:0)
一种可能的方法是创建一个哈希集并遍历列表,将元素添加到集合中;可以使用第二次迭代来删除任何重复项。
答案 4 :(得分:0)
也许我们可以这样做:
def addToList(self,str_to_add):
try:
self.list_of_strings.index(str_to_add)
except:
self.list_of_strings.append(str_to_add)
好吧,我不知道它是否与if / else的机制相同。