【问题标题】:How to convert a list into a dictionary in python?如何在python中将列表转换为字典?
【发布时间】:2020-11-02 10:19:23
【问题描述】:

我有一个list 的对象:

['fb_ads_sm', 'Active', '18 hr ago', '23', 'sm_sg13', 'Pending', '12 hr ago', '0', ...]

如何将其转换为字典,其中键是第 1 和第 5 个元素,值是第 2 和第 6 个元素?

dictionary = {'fb_ads_sm': 'Active', 'sm_sg13': 'Pending', ...}

【问题讨论】:

  • 假设这种模式继续下去,你的意思是像dict(zip(l[::4], l[1::4]))这样的吗?
  • 它适用于给定的输入。它是否适用于包含 100 个元素的更长列表?
  • 是的,当然,如果模式成立的话。对于真的很长的l,您可能不想具体化这两个列表l[::4]l[1::4],但是100 个元素在计划中并不是很多。
  • 我如何访问第一个和第三个元素并使其成为字典
  • 您是否尝试过根据需要调整已有的信息?这似乎微不足道。

标签: python python-3.x list dictionary


【解决方案1】:

您可以尝试将字典理解与列表切片一起使用

a = ['fb_ads_sm', 'Active', '18 hr ago', '23', 'sm_sg13', 'Pending', '12 hr ago']
{k: v for k, v in zip(a[::4], a[1::4])}

dict(zip(a[::4], a[1::4]))

输出

{'fb_ads_sm': 'Active', 'sm_sg13': 'Pending'}

【讨论】:

  • zip 为您提供了一个元组迭代器,因此您可以将其直接传递给dict
  • 我如何访问第一个和第三个元素并使其成为字典?
  • @LeoArad 索引是基于的。
  • zip(a[::4], a[2::4]) 应该。 @jonrsharpe Tnx 很多笔记。
【解决方案2】:
def Convert(a): 
    it = iter(lst) 
    res_dct = dict(zip(it, it)) 
    return res_dct 
           
lst = ['fb_ads_sm', 'Active', '18 hr ago', '23', 'sm_sg13', 'Pending', '12 hr ago'] 
print(Convert(lst))

【讨论】:

    【解决方案3】:

    试试这个方法:数据是你的实际列表。

    dict_list = {}
    for i in range(0, len(data)-1, 4):
        dict_list[data[i]] = data[i+1]
    

    【讨论】:

      猜你喜欢
      • 2012-07-12
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 2015-07-23
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多