python 3字典键到一个字符串,值到另一个字符串
问题内容:
如果有字典:
dict={'a':'b'}
在python 3中,我想将此字典键转换为字符串,并将其值转换为另一个字符串:
print(key)
key='a'
print(type(key))
str
print(value)
value='a'
print(type(value))
str
一些尝试:
str(dict.key()) # returns 'dict' object has no attribute 'key'
json.dump(dict) # returns {'a':'b'} in string, but hard to process
任何简单的解决方案?谢谢!
问题答案:
用途dict.items()
:
您可以使用dict.items()
(dict.iteritems()
对于python
2),它返回键和值对,并且您可以简单地选择第一个。
>>> d = { 'a': 'b' }
>>> key, value = list(d.items())[0]
>>> key
'a'
>>> value
'b'
我将d.items()
其转换为一个列表,并选择了它的0
索引,也可以将其转换为一个迭代器,并使用next
以下方法首先选择它:
>>> key, value = next(iter(d.items()))
>>> key
'a'
>>> value
'b'
您还可以使用dict.keys()
检索所有字典键,并选择其第一个键。并用于dict.values()
检索所有字典值:
>>> key = list(d.keys())[0]
>>> key
'a'
>>> value = list(d.values())[0]
>>> value
'b'
在这里,您也可以使用next(iter(...))
:
>>> key = next(iter(d.keys()))
>>> key
'a'
>>> value = next(iter(d.values()))
'b'
确保获得str
:
上面的方法不能确保检索字符串,它们将返回键的实际类型和值。您可以将它们显式转换为str
:
>>> d = {'some_key': 1}
>>> key, value = next((str(k), str(v)) for k, v in d.items())
>>> key
'some_key'
>>> value
'1'
>>> type(key)
<class 'str'>
>>> type(value)
<class 'str'>
现在,key
和value
都是str
。尽管dict的实际价值是一个int
。
免责声明
:这些方法将选择第一个键,字典的值对(如果它具有多个键值对),而忽略其他键。如果字典为空,它将不起作用。如果您需要一种在字典中有多个值的情况下只会失败的解决方案,那么您应该寻找@SylvainLeroux的答案。