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的答案。