python 3字典键到一个字符串,值到另一个字符串

发布于 2021-01-29 16:39:52

如果有字典:

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

任何简单的解决方案?谢谢!

关注者
0
被浏览
164
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    用途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()

    您还可以使用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'>
    

    现在,keyvalue都是str。尽管dict的实际价值是一个int

    免责声明
    :这些方法将选择第一个键,字典的值对(如果它具有多个键值对),而忽略其他键。如果字典为空,它将不起作用。如果您需要一种在字典中有多个值的情况下只会失败的解决方案,那么您应该寻找@SylvainLeroux的答案



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看