【问题标题】:How to convert List data type into Dictionary data in python如何在python中将List数据类型转换为Dictionary数据
【发布时间】:2017-04-14 11:43:28
【问题描述】:

我希望将我的列表转换为字典 例如

list1=["Indrajit","Mayur","Swapnali","Akankasha"]

进入 字典具有自动生成的键,如

dict1 = {"1" : "indrajit","2" : "Mayur", "3" : "Swapnali", "4" : "Akankasha"}

【问题讨论】:

  • 你为什么需要这个?

标签: python list dictionary type-conversion


【解决方案1】:

您可以使用从 1 开始的 enumerate 并将索引转换为字符串,在字典理解中:

list1=["Indrajit","Mayur","Swapnali","Akankasha"]

dict1 = {str(k):v for k,v in enumerate(list1,1)}

print(dict1)

结果:

{'1': 'Indrajit', '4': 'Akankasha', '2': 'Mayur', '3': 'Swapnali'}

【讨论】:

    【解决方案2】:

    您可以使用enumerate 方法来做到这一点:

    >>> dict(enumerate(list1,1))
    {1: 'Indrajit', 2: 'Mayur', 3: 'Swapnali', 4: 'Akankasha'}
    

    你也可以使用list.index()方法:

    >>> list1=["Indrajit","Mayur","Swapnali","Akankasha"]
    >>> print({list1.index(i)+1,i} for i in list1 )
    
    >>> print({list1.index(i)+1:i for i in list1})
    {1: 'Indrajit', 2: 'Mayur', 3: 'Swapnali', 4: 'Akankasha'}
    

    但是如果您的列表中有重复的项目,它可能会返回意外的结果。

    【讨论】:

    • 速度很慢,如果有重复项将不起作用,因为index 总是返回第一个索引。
    【解决方案3】:

    随便用

    dict1 = dict(enumerate(list1))
    

    enumerate 将返回一个生成器,该生成器返回一个具有索引和列表值的元组,一次一个。通过调用 dict() 你完全消耗了生成器,得到你想要的。

    【讨论】:

      【解决方案4】:

      试试这个

      List<string> list = new List<string>() { "Indrajit", "Mayur", "Swapnali", "Akankasha" };
                  Dictionary<int, string> di = new Dictionary<int, string>();
                  for (int i = 1; i <= list.Count; i++)
                  {
                      di.Add(i, list[i - 1]);
                  }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        • 2014-10-09
        相关资源
        最近更新 更多