Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将列表转换为嵌套字典?_Python_List_Dictionary - Fatal编程技术网

Python 如何将列表转换为嵌套字典?

Python 如何将列表转换为嵌套字典?,python,list,dictionary,Python,List,Dictionary,初学者程序员在这里。我有两个问题 将列表转换为嵌套字典: 房价=[‘20万英镑’、‘30万英镑’、‘50万英镑’] 我想把它变成-- 将两个列表转换为嵌套字典: 房价=[‘20万英镑’、‘30万英镑’、‘50万英镑’] 卧室数量=[2,3,5] 我想变成-- d={} 对于X范围内的i(房屋价格): 格式(i+1)]={“价格”:房价[i]} 第二部分: d={} 对于X范围内的i(房屋价格): d[“house{}”.format(i+1)]={“price”:房价[i],“没有卧室”:

初学者程序员在这里。我有两个问题

  • 将列表转换为嵌套字典:

    房价=[‘20万英镑’、‘30万英镑’、‘50万英镑’]

  • 我想把它变成--

  • 将两个列表转换为嵌套字典:

    房价=[‘20万英镑’、‘30万英镑’、‘50万英镑’]

    卧室数量=[2,3,5]

  • 我想变成--

    d={}
    对于X范围内的i(房屋价格):
    格式(i+1)]={“价格”:房价[i]}
    
    第二部分:

    d={}
    对于X范围内的i(房屋价格):
    d[“house{}”.format(i+1)]={“price”:房价[i],“没有卧室”:没有卧室[i]}
    

    请注意,
    房价
    无卧室
    必须大小相同,否则将提高
    索引器

    zip函数获取多个列表,并从每个列表返回一个元素的元组:

    >>> house_prices = ['200k', '300k', '500k']
    >>> no_of_bedrooms = [2, 3, 5]
    >>>
    >>> list(zip(house_prices, no_of_bedrooms))
    [('200k', 2), ('300k', 3), ('500k', 5)]
    >>>
    
    zip返回一个生成器,所以我将其转换为上面的列表以查看结果

    有一个内置枚举函数,可返回列表中的索引和值:

    >>> for i, n in enumerate(['a', 'b', 'c'], start=1):
    ...     print(i, n)
    ...
    1 a
    2 b
    3 c
    >>>
    
    将两者结合起来,可以得到:

    >>> list(enumerate(zip(house_prices, no_of_bedrooms), start=1))
    [(1, ('200k', 2)), (2, ('300k', 3)), (3, ('500k', 5))]
    
    你可以把它输入到听写理解中:

    >>> house_info_dict = {'house%d' % i: {
    ...     'price': p,
    ...     'no_of_bedrooms': n
    ... } for i, (p, n) in enumerate(zip(house_prices, no_of_bedrooms), start=1)}
    >>> house_info_dict
    {'house3': {'no_of_bedrooms': 5, 'price': '500k'}, 'house2': {'no_of_bedrooms': 3, 'price': '300k'}, 'house1': {'no_of_bedrooms': 2, 'price': '200k'}}
    
    以更漂亮的格式打印的技巧是使用json模块:

    >>> import json
    >>> print(json.dumps(house_info_dict, indent=4))
    {
        "house3": {
            "no_of_bedrooms": 5,
            "price": "500k"
        },
        "house2": {
            "no_of_bedrooms": 3,
            "price": "300k"
        },
        "house1": {
            "no_of_bedrooms": 2,
            "price": "200k"
        }
    }
    >>>
    

    我们可以用词来理解任何东西

    house_prices = ['£200k', '£300k', '£500k']
    House_price_dict = {f'house{idx}':{'price':i} for idx, i in enumerate(house_prices, start=1)}
    
    #{'house1': {'price': '£200k'},
    # 'house2': {'price': '£300k'},
    # 'house3': {'price': '£500k'}}
    
    no_of_bedrooms = [2, 3, 5]
    house_info_dict = {f'house{idx}':{'price':i[0], 'no_of_bedrooms': i[1]} for idx, i in enumerate(zip(house_prices, no_of_bedrooms), start=1)}
    
    #{'house1': {'price': '£200k', 'no_of_bedrooms': 2},
    # 'house2': {'price': '£300k', 'no_of_bedrooms': 3},
    # 'house3': {'price': '£500k', 'no_of_bedrooms': 5}}
    

    您已经尝试过什么?xrange的
    xrange
    是什么意思?您是否打算
    range
    range
    如果您使用的是python 3,那么
    xrange
    如果您使用的是python 2。请注意,
    range
    也存在于Python2中,但与Python3中的不同。
    >>> import json
    >>> print(json.dumps(house_info_dict, indent=4))
    {
        "house3": {
            "no_of_bedrooms": 5,
            "price": "500k"
        },
        "house2": {
            "no_of_bedrooms": 3,
            "price": "300k"
        },
        "house1": {
            "no_of_bedrooms": 2,
            "price": "200k"
        }
    }
    >>>
    
    house_prices = ['£200k', '£300k', '£500k']
    House_price_dict = {f'house{idx}':{'price':i} for idx, i in enumerate(house_prices, start=1)}
    
    #{'house1': {'price': '£200k'},
    # 'house2': {'price': '£300k'},
    # 'house3': {'price': '£500k'}}
    
    no_of_bedrooms = [2, 3, 5]
    house_info_dict = {f'house{idx}':{'price':i[0], 'no_of_bedrooms': i[1]} for idx, i in enumerate(zip(house_prices, no_of_bedrooms), start=1)}
    
    #{'house1': {'price': '£200k', 'no_of_bedrooms': 2},
    # 'house2': {'price': '£300k', 'no_of_bedrooms': 3},
    # 'house3': {'price': '£500k', 'no_of_bedrooms': 5}}