Python 使用字符串变量中的键从dict获取值

Python 使用字符串变量中的键从dict获取值,python,python-3.x,Python,Python 3.x,在使用dict中的特定键时,如何计算该键的值 在字符串变量(currency)中获取基础值?我现在尝试的是: offer = {'USD': [0.12, 0.15, 0.20, 0,50]} currency = ['USD'] print(offer[currency]) 我想给你这个 >>> [0.12, 0.15, 0.20, 0,50] 有没有我缺少的函数或方法?您可以在所有货币上迭代,然后在dict上执行一个。get: In [75]: offer = {'U

在使用dict中的特定键时,如何计算该键的值 在字符串变量(
currency
)中获取基础值?我现在尝试的是:

offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
currency = ['USD']

print(offer[currency])
我想给你这个

>>> [0.12, 0.15, 0.20, 0,50]

有没有我缺少的函数或方法?

您可以在所有货币上迭代,然后在dict上执行一个
。get

In [75]: offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
    ...: currency = ['USD']
    ...: 

In [76]: for c in currency:
    ...:     print(offer.get(c, []))
    ...: 
[0.12, 0.15, 0.2, 0, 50]
或者

In [77]: for c in currency:
    ...:     print(offer[c]) # if all currency will exist within the dict
    ...:     
[0.12, 0.15, 0.2, 0, 50]

您可以迭代所有货币,然后在dict上执行
。get

In [75]: offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
    ...: currency = ['USD']
    ...: 

In [76]: for c in currency:
    ...:     print(offer.get(c, []))
    ...: 
[0.12, 0.15, 0.2, 0, 50]
或者

In [77]: for c in currency:
    ...:     print(offer[c]) # if all currency will exist within the dict
    ...:     
[0.12, 0.15, 0.2, 0, 50]

只需使用简单字符串获取密钥,无需括号:

offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
currency = 'USD'

print(offer[currency])

只需使用简单字符串获取密钥,无需括号:

offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
currency = 'USD'

print(offer[currency])
你可以用这个

offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
currency = offer['USD']
print(currency)
你可以用这个

offer = {'USD': [0.12, 0.15, 0.20, 0,50]}
currency = offer['USD']
print(currency)

字符串变量
currency
,实际上是一个
列表
对象,其中有一个字符串元素。要使其成为一个简单的字符串,请使用
currency='USD'
,如@syntactical gourose的答案所示。字符串变量
currency
,实际上是一个
列表
对象,其中包含一个字符串元素。让它成为一个简单的字符串,使用
currency='USD'
,如@syntactical果糖的答案所示。是的,但问题是我想从变量
currency
中获取
'USD'
,因为
currency
有许多其他值,我不想做一个大的转换语句块是的,但问题是我想从变量
currency
原因
currency
有许多其他值,我不想做一个大的切换语句,谢谢!有趣的是,只有你的建议是有效的:
以货币表示的c:print(offer.get(c,[])
但是如果你像
print(offer.get(currency,[]))那样从for循环中取出它,我会得到一个
类型错误:不可损坏的类型:“list”
错误。你知道为什么吗?@steenou在你的原始代码中,你试图通过一个名为currency的变量来访问这些值,这个变量实际上是一个列表。Python中的列表是可变的,因此是不可修改的(因为它们的值在添加/删除元素时可能会更改)。因此,当您尝试直接使用变量currency来访问值时,基本上是使用不可处理的数据类型作为键,这会引发错误。我建议您阅读更多python列表和字典,并在其中进行迭代。非常感谢!有趣的是,只有你的建议是有效的:
以货币表示的c:print(offer.get(c,[])
但是如果你像
print(offer.get(currency,[]))那样从for循环中取出它,我会得到一个
类型错误:不可损坏的类型:“list”
错误。你知道为什么吗?@steenou在你的原始代码中,你试图通过一个名为currency的变量来访问这些值,这个变量实际上是一个列表。Python中的列表是可变的,因此是不可修改的(因为它们的值在添加/删除元素时可能会更改)。因此,当您尝试直接使用变量currency来访问值时,基本上是使用不可处理的数据类型作为键,这会引发错误。我建议您阅读更多关于python列表和字典的内容,并在其中进行迭代。