在添加新元组之前,我希望检查列表是否已经包含该元组并避免重复添加到列表中,我该如何实现?对于整数和字符串,您可以编写list.Contains(2)或list.Contains("2"),但是我不确定在检查元组时要使用什么语法。
我尝试了以下两个片段(组合是一个元组<char,char>的列表)
if ('a', 'b') not in combination: combination.append(('a', 'b')) if not any(c[0] == 'a' and c[1] == 'b' for c in combination): combination.append(('a', 'b'))
if(!combinations.Contains(Tuple<char, char>(s[i], chr)))
{
combinations.Add(new Tuple<char, char>(s[i], chr));
}
if(!combinations.Contains(Tuple<char, char> s[i], chr))
{
combinations.Add(new Tuple<char, char>(s[i], chr));
}
添加功能正常,所以我认为比较也应该是一样的。对于语法或逻辑方面的任何帮助都将是非常好的,谢谢:)
.Contains(Tuple.Create(s[i], chr))
。另外:如果你的combinations
是一个List<Tuple<char, char>>
,并且你不想要重复项,也许你应该使用HashSet<Tuple<char, char>>
?它的Add
方法会在集合中已经存在该项时什么都不做。 - Jeppe Stig Nielsen