尝试添加列表元素时字典中的关键错误
Key error in dictionary when try to add a list element
我正在尝试在具有此最终重组的字典中添加计数:{'stationA':[2,3], 'stationB':[1,0]}
if start_station_name not in my_station_dict:
my_station_dict["station_name"]=start_station_name
my_station_dict[start_station_name][0]=0
my_station_dict[start_station_name][0] += 1
if stop_station_name not in my_station_dict:
my_station_dict["station_name"] = stop_station_name
my_station_dict[stop_station_name][1] = 0
my_station_dict[stop_station_name][1] += 1
但是我明白了
my_station_dict[start_station_name][0]=0
KeyError: 'N 6 St & Bedford Ave'
my_station_dict["station_name"]=start_station_name
您正在将“station_name”添加为字典中的键,但随后尝试使用键 start_station_name 访问它。需要明确的是,您的代码正在创建这个:
{'station_name': 'N 6 St & Bedford Ave'}
当你真的想要这个时:
{'N 6 St & Bedford Ave': [0, 0]}
这是一个简单的更新:
if start_station_name not in my_station_dict:
my_station_dict[start_station_name] = [0, 0]
my_station_dict[start_station_name][0] += 1
if stop_station_name not in my_station_dict:
my_station_dict[stop_station_name] = [0, 0]
my_station_dict[stop_station_name][1] += 1
这里有一种方法可以满足您的要求:
my_station_dict = {}
def foo(start_station_name, stop_station_name):
if start_station_name not in my_station_dict:
my_station_dict[start_station_name]=[0]*2
my_station_dict[start_station_name][0] += 1
if stop_station_name not in my_station_dict:
my_station_dict[stop_station_name]=[0]*2
my_station_dict[stop_station_name][1] += 1
trips = [['A', 'B'], ['A', 'C'], ['A', 'D'], ['B', 'C'], ['D', 'B']]
for start, stop in trips:
foo(start, stop)
print(my_station_dict)
输出:
{'A': [3, 0], 'B': [1, 2], 'C': [0, 2], 'D': [1, 1]}
我正在尝试在具有此最终重组的字典中添加计数:{'stationA':[2,3], 'stationB':[1,0]}
if start_station_name not in my_station_dict:
my_station_dict["station_name"]=start_station_name
my_station_dict[start_station_name][0]=0
my_station_dict[start_station_name][0] += 1
if stop_station_name not in my_station_dict:
my_station_dict["station_name"] = stop_station_name
my_station_dict[stop_station_name][1] = 0
my_station_dict[stop_station_name][1] += 1
但是我明白了
my_station_dict[start_station_name][0]=0
KeyError: 'N 6 St & Bedford Ave'
my_station_dict["station_name"]=start_station_name
您正在将“station_name”添加为字典中的键,但随后尝试使用键 start_station_name 访问它。需要明确的是,您的代码正在创建这个:
{'station_name': 'N 6 St & Bedford Ave'}
当你真的想要这个时:
{'N 6 St & Bedford Ave': [0, 0]}
这是一个简单的更新:
if start_station_name not in my_station_dict:
my_station_dict[start_station_name] = [0, 0]
my_station_dict[start_station_name][0] += 1
if stop_station_name not in my_station_dict:
my_station_dict[stop_station_name] = [0, 0]
my_station_dict[stop_station_name][1] += 1
这里有一种方法可以满足您的要求:
my_station_dict = {}
def foo(start_station_name, stop_station_name):
if start_station_name not in my_station_dict:
my_station_dict[start_station_name]=[0]*2
my_station_dict[start_station_name][0] += 1
if stop_station_name not in my_station_dict:
my_station_dict[stop_station_name]=[0]*2
my_station_dict[stop_station_name][1] += 1
trips = [['A', 'B'], ['A', 'C'], ['A', 'D'], ['B', 'C'], ['D', 'B']]
for start, stop in trips:
foo(start, stop)
print(my_station_dict)
输出:
{'A': [3, 0], 'B': [1, 2], 'C': [0, 2], 'D': [1, 1]}