在两个字典中使用相同的键(Python)
以下是我所拥有的:在两个字典中使用相同的键(Python),python,hash,dictionary,key,Python,Hash,Dictionary,Key,以下是我所拥有的: from pprint import pprint Names = {} Prices = {} Exposure = {} def AddName(): company_name = input("Please enter company name: ") return company_name def AddSymbol(company_name): stock_symbol = input("Please enter a stock sym
from pprint import pprint
Names = {}
Prices = {}
Exposure = {}
def AddName():
company_name = input("Please enter company name: ")
return company_name
def AddSymbol(company_name):
stock_symbol = input("Please enter a stock symbol: ")
Names[stock_symbol] = company_name
return Names
^^这会将名称字典更新为{symbol:company name}
def AddPrices(stock_symbol):
buy = float(input("Please enter buying price of stock: "))
sell = float(input("Please enter current price of stock: "))
Prices[stock_symbol] = buy, sell
return Prices
^^这将生成一个TypeError:Unhabable类型:“dict”-我希望它更新价格字典,如{symbol:buy price,sell price,symbol2:buy price,sell price等..}
def printDicts(Names, Prices):
'''
For debug purposes, prints out contents of dictionaries
'''
print( "Names is now:" )
pprint(Names)
print("Prices now:")
pprint(Prices)
def main():
company_name = AddName()
stock_symbol = AddSymbol(company_name)
AddPrices(stock_symbol)
printDicts(Names, Prices)
main()
作为编程新手,我不完全确定如何解决这个问题。谢谢你的帮助 您的
AddSymbol
返回名称
,即字典。字典不能用作字典键
只需在AddSymbol
中使用return stock\u symbol
在AddSymbol(公司名称)
中返回整个名称
字典即可。然后将整个字典传递到AddPrices
函数中AddPrices
意味着向其中传递一个股票符号(astr
),但您传递的是一个dict
。您可以修改AddSymbol
以返回stock\u symbol
,而不是名称
我还建议您的函数名采用驼峰式大小写,以小写字母开头,每个单词的第一个字母大写。这是大多数程序员为保持一致性而做的事情,养成良好的习惯是很好的。也许您想在
AddSymbol
函数中返回的是符号,而不是另一个字典?在这种情况下,您可以:
def AddSymbol(company_name):
stock_symbol = input("Please enter a stock symbol: ")
Names[stock_symbol] = company_name
return stock_symbol
杰出的现在效果很好!谢谢你提供的关于我名字格式的信息。