我有一份表格字典: -
DictName = {'A1': {'B': ['B1', 'B2'], 'C': ['C1', 'C2']}, 'A2': {'B': ['B3', 'B4'], 'C': ['C3', 'C4']}}
我尝试对列表元素执行计算是徒劳的
例如:
[B1, B2] - [B3 - B4]
我在函数中使用以下代码来计算距离:
def _calculate_distance(x,y):
return sqrt(sum(pow(a - b,2) for a, b in zip(x, y)))
我将两个列表(ListA和ListB)传递给表单的函数:
ListA = DictName[A1]
ListB = DictName[A2]
我收到以下错误,该错误指向上述功能: -
TypeError: unsupported operand type(s) for -: 'list' and 'list'
我认为我正以错误的方式接近这一点。
关于如何在字典(B)中传递列表元素(B1,B2,B3,B4)的任何建议,基于其自身字典中包含的键值(A),以便计算可以被执行?
我希望这是有道理的。如果有人能提供帮助,我会很高兴的!
答案 0 :(得分:0)
函数_calculate_distance
有两个列表。
如果您的字典看起来像这样:
DictName = {'A1': {'B': [1, 2], 'C': [1, 1]}, 'A2': {'B': [1, 4], 'C': [3, 2]}}
并且您希望传递'A1', 'B'
中的列表,您可以使用以下内容访问该列表:
DictName['A1']['B']
[1, 2]
然后可以将这些列表传递给距离函数
_calculate_distance(DictName['A1']['B'], DictName['A1']['C'])
2.2360679774997898
希望这有帮助