确定 python 中两个数据集是否相等的最佳方法?
Best way to determine the equality of two data sets in python?
你知道一个更简单的方法来实现与此相同的结果吗?
我有这个代码:
color1 = input("Color 1: ")
color2 = input("Color 2: ")
if ((color1=="blue" and color2=="yellow") or (color1=="yellow" and color2=="blue")):
print("{0} + {1} = Green".format(color1, color2))
我也试过这个:
if (color1 + color2 =="blueyellow" or color1 + color2 =="yellowblue")
不要错过大局。这是解决一般问题的更好方法。
如果您定义 "mixes" 字典,您会在其中混合颜色作为键,并将结果颜色作为值。
实现的一个想法是使用本质上不可变的 frozenset
s 作为映射键:
mixes = {
frozenset(['blue', 'yellow']): 'green'
}
color1 = input("Color 1: ")
color2 = input("Color 2: ")
mix = frozenset([color1, color2])
if mix in mixes:
print("{0} + {1} = {2}".format(color1, color2, mixes[mix]))
通过这种方式,您可以轻松地扩展解决方案,添加不同的混合,而无需多个 if/else 嵌套条件。
您可以使用 set
进行比较。
Two sets are equal if and only if every element of each set is contained in the other
In [35]: color1 = "blue"
In [36]: color2 = "yellow"
In [37]: {color1, color2} == {"blue", "yellow"}
Out[37]: True
In [38]: {color2, color1} == {"blue", "yellow"}
Out[38]: True
你知道一个更简单的方法来实现与此相同的结果吗? 我有这个代码:
color1 = input("Color 1: ")
color2 = input("Color 2: ")
if ((color1=="blue" and color2=="yellow") or (color1=="yellow" and color2=="blue")):
print("{0} + {1} = Green".format(color1, color2))
我也试过这个:
if (color1 + color2 =="blueyellow" or color1 + color2 =="yellowblue")
不要错过大局。这是解决一般问题的更好方法。
如果您定义 "mixes" 字典,您会在其中混合颜色作为键,并将结果颜色作为值。
实现的一个想法是使用本质上不可变的 frozenset
s 作为映射键:
mixes = {
frozenset(['blue', 'yellow']): 'green'
}
color1 = input("Color 1: ")
color2 = input("Color 2: ")
mix = frozenset([color1, color2])
if mix in mixes:
print("{0} + {1} = {2}".format(color1, color2, mixes[mix]))
通过这种方式,您可以轻松地扩展解决方案,添加不同的混合,而无需多个 if/else 嵌套条件。
您可以使用 set
进行比较。
Two sets are equal if and only if every element of each set is contained in the other
In [35]: color1 = "blue"
In [36]: color2 = "yellow"
In [37]: {color1, color2} == {"blue", "yellow"}
Out[37]: True
In [38]: {color2, color1} == {"blue", "yellow"}
Out[38]: True