为 Python 中的字典键分配新值
Assigning a new value to a dictionary key in a in Python
我试图为字典 alien_0 中的键 x_position 分配一个新值,但是我认为的方法会导致 TypeError
我的代码:
alien_0={ 'x_position' : '25' , 'y_position' : '25' , 'speed' : 'medium' }
print(f"original position of alien is {alien_0['x_position']}")
if alien_0['speed'] == 'fast' :
x_increment = 3
elif alien_0['speed'] == 'medium' :
x_increment = 2
else:
x_increment = 1
#ladies and gentlemen in this case we have a slow alien
alien_0['x_position'] = alien_0['x_position'] + x_increment
print(f"our alien is at {alien_0['x_position']}")
期望的输出:
外星人原来的位置是25
我们的外星人 27 岁
要修复代码,请将 alien_0['x_position'] = alien_0['x_position'] + x_increment
替换为 alien_0['x_position'] = int(alien_0['x_position']) + x_increment
您字典中的数字实际上是以文本形式保存的,您应该删除字典中数字周围的引号 ('')。
问题出在第13行:
alien_0['x_position'] = alien_0['x_position'] + x_increment
您正在尝试将 x_increment
添加到 alien_0['x_position']
,但 alien_0['x_position']
是一个字符串,而 x_increment
是一个整数。 Python 会抛出类型错误。
作为旁注,您可以使用 += 运算符而不是您现在正在做的,而是写成这个(等效):
alien_0['x_position'] += x_increment
无论如何,要解决这个问题,您可以在定义 alien_0
第 1 行:
alien_0={ 'x_position' : 25 , 'y_position' : 25, 'speed' : 'medium' }
只要去掉x_position
两边的引号,python就会把它当作一个整数。我假设您正在使用 y_position
做类似的事情,因此您可能也想删除它周围的引号。
输出:
original position of alien is 25
our alien is at 27
[Program finished]
固定码:
alien_0={ 'x_position' : 25 , 'y_position' : 25 , 'speed' : 'medium' }
print(f"original position of alien is {alien_0['x_position']}")
if alien_0['speed'] == 'fast' :
x_increment = 3
elif alien_0['speed'] == 'medium' :
x_increment = 2
else:
x_increment = 1
#ladies and gentlemen in this case we have a slow alien
alien_0['x_position'] += x_increment
print(f"our alien is at {alien_0['x_position']}")
我试图为字典 alien_0 中的键 x_position 分配一个新值,但是我认为的方法会导致 TypeError 我的代码:
alien_0={ 'x_position' : '25' , 'y_position' : '25' , 'speed' : 'medium' }
print(f"original position of alien is {alien_0['x_position']}")
if alien_0['speed'] == 'fast' :
x_increment = 3
elif alien_0['speed'] == 'medium' :
x_increment = 2
else:
x_increment = 1
#ladies and gentlemen in this case we have a slow alien
alien_0['x_position'] = alien_0['x_position'] + x_increment
print(f"our alien is at {alien_0['x_position']}")
期望的输出:
外星人原来的位置是25
我们的外星人 27 岁
要修复代码,请将 alien_0['x_position'] = alien_0['x_position'] + x_increment
替换为 alien_0['x_position'] = int(alien_0['x_position']) + x_increment
您字典中的数字实际上是以文本形式保存的,您应该删除字典中数字周围的引号 ('')。
问题出在第13行:
alien_0['x_position'] = alien_0['x_position'] + x_increment
您正在尝试将 x_increment
添加到 alien_0['x_position']
,但 alien_0['x_position']
是一个字符串,而 x_increment
是一个整数。 Python 会抛出类型错误。
作为旁注,您可以使用 += 运算符而不是您现在正在做的,而是写成这个(等效):
alien_0['x_position'] += x_increment
无论如何,要解决这个问题,您可以在定义 alien_0
第 1 行:
alien_0={ 'x_position' : 25 , 'y_position' : 25, 'speed' : 'medium' }
只要去掉x_position
两边的引号,python就会把它当作一个整数。我假设您正在使用 y_position
做类似的事情,因此您可能也想删除它周围的引号。
输出:
original position of alien is 25
our alien is at 27
[Program finished]
固定码:
alien_0={ 'x_position' : 25 , 'y_position' : 25 , 'speed' : 'medium' }
print(f"original position of alien is {alien_0['x_position']}")
if alien_0['speed'] == 'fast' :
x_increment = 3
elif alien_0['speed'] == 'medium' :
x_increment = 2
else:
x_increment = 1
#ladies and gentlemen in this case we have a slow alien
alien_0['x_position'] += x_increment
print(f"our alien is at {alien_0['x_position']}")