我有一个3元组,其中一个元素与另外两个元素不同。例如,它可能类似于:(0.456, 0.768, 0.456)
。
找到这个不同元素的索引最简单的方法是什么?我能想到的一种方法是考虑索引(0, 1)
和(1, 2)
,其中一种将是不同的。如果是(0, 1)
,则将它们的元素与2
上的元素进行比较,否则,请比较(1, 2)
的元素以索引0
以找到不同的元素。
我觉得我错过了一种做这件事的节奏曲。
发布于 2019-10-04 00:58:27
您可以计算列表中每个元素的出现情况,然后找到只有一个元素存在的位置的索引,但是我有一种感觉,这可能没有您的解决方案更好。如果所有三个值都是不同的,它也不能工作。
my_tuple[[my_tuple.count(x) for x in my_tuple].index(1)]
发布于 2019-10-04 03:07:23
一种简单的方法:
def func(arr):
x, y, z = arr
return 2 * (x == y) + (x == z)
测试:
func(['B', 'A', 'A'])
# 0
func(['A', 'B', 'A'])
# 1
func(['A', 'A', 'B'])
# 2
发布于 2019-10-04 00:57:15
你可以试试这个:
index = [my_tuple.index(i) for i in my_tuple if my_tuple.count(i) == 1][0]
我不确定这是伟大的表现,尽管如此。
https://stackoverflow.com/questions/58232887
复制相似问题