我在这里有点难题,我正在寻找一种简单而动态的方法来检查列表字典中的所有列表是否相同。
下面是我现在正在做的一个例子,但显然我的列表包含真实数据(字符串):
def sample_method(var=10):
d = {}
for i in range(var):
d[i] = range(10)
return d
def compare_method(d):
lists = d.values()
first = lists[0]
for lst in lists[1:]:
if first != lst:
return False
return True
print compare_method(sample_method(5))
# returns True
如果所有列表都相同,我想要一种更简单的方法来比较。我的偏好是,它将是一个单行,类似于:
def desired_method():
# logic to get d.
if "all lists are equal": # replace this with the one-liner logic.
# do more logic.
答案 0 :(得分:3)
这应该有效:
if len(set(tuple(i) for i in d.values())) == 1
这首先将列表转换为元组,以便将它们放入集合中(列表不可清除)。该集合删除了所有重复项,因此如果集合的长度为1
,则列表中的所有元素必须相同。