【问题标题】:assign key as list index+1 to list of tuples [closed]将键作为列表索引+1分配给元组列表[关闭]
【发布时间】:2020-10-14 03:00:00
【问题描述】:

我有一个元组列表,我想将它们转换为字典,但键应该是列表中的元组索引+1

所以如果我的元组列表是

[(113, 254), (163, 253), (230, 252), (197, 251), (184, 249), (211, 247), (151, 245), (242, 243), (173, 242), (191, 238)]

我想创建一个元组列表的字典,其中键为列表中的元组索引 + 1。类似于

{1:(113, 254), 2:(163, 253), 3:(230, 252), 4:(197, 251), 5:(184, 249), 6:(211,247), 7:(151, 245), 8:(242, 243), 9:(173, 242), 10:(191, 238)}

【问题讨论】:

  • 如果您想通过按顺序增加的索引查找内容,通常会使用列表而不是字典。它更高效(没有散列!)并且编码更直观,但无论如何我在这里看不到任何问题或代码尝试,所以我会投票关闭,因为不清楚你在问什么。

标签: python list dictionary tuples


【解决方案1】:
>>> x = [(113, 254), (163, 253), (230, 252), (197, 251), (184, 249), (211, 247), (151, 245), (242, 243), (173, 242), (191, 238)]
>>> dict(enumerate(x, start=1))
{1: (113, 254), 2: (163, 253), 3: (230, 252), 4: (197, 251), 5: (184, 249), 6: (211, 247), 7: (151, 245), 8: (242, 243), 9: (173, 242), 10: (191, 238)}

【讨论】:

    【解决方案2】:

    这应该对你有帮助:

    lst = [(113, 254), (163, 253), (230, 252), (197, 251), (184, 249), (211, 247), (151, 245), (242, 243), (173, 242), (191, 238)]
    
    dictionary = {}
    
    key = 1
    
    for item in lst:
        dictionary[key] = item
        key+=1
    
    print(dictionary)
    

    输出:

    {1: (113, 254), 2: (163, 253), 3: (230, 252), 4: (197, 251), 5: (184, 249), 6: (211, 247), 7: (151, 245), 8: (242, 243), 9: (173, 242), 10: (191, 238)}
    

    【讨论】:

      【解决方案3】:

      您可以在字典中使用列表推导式。了解更多:https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

      tuple_list = [(113, 254), (163, 253), (230, 252), (197, 251), (184, 249), (211, 247), (151, 245), (242, 243), (173, 242), (191, 238)]
      {i:tup for i, tup in enumerate(tuple_list, start=1)}
      

      输出将是:

      {1: (113, 254), 2: (163, 253), 3: (230, 252), 4: (197, 251), 5: (184, 249), 6: (211, 247), 7: (151, 245), 8: (242, 243), 9: (173, 242), 10: (191, 238)}
      

      【讨论】:

        【解决方案4】:

        给你

        a = [(113, 254), (163, 253), (230, 252), (197, 251),\
         (184, 249), (211, 247), (151, 245), (242, 243), (173, 242), (191, 238)]
        d = {}
        for i in range(len(a)):
            d[(i + 1)] = a[i]
        
        

        生产

        {1: (113, 254),
         2: (163, 253),
         3: (230, 252),
         4: (197, 251),
         5: (184, 249),
         6: (211, 247),
         7: (151, 245),
         8: (242, 243),
         9: (173, 242),
         10: (191, 238)}
        

        【讨论】:

          【解决方案5】:

          您可以使用从 1 开始的范围并赋值。

          lst = [(113, 254), (163, 253), (230, 252), (197, 251), (184, 249), (211, 247), (151, 245), (242, 243), (173, 242), (191, 238)]
          
          dic = {}
          for i in range(1,(len(lst) + 1)):
              dic[i] = lst[i-1]
              
          dic
          
          {1: (113, 254),
           2: (163, 253),
           3: (230, 252),
           4: (197, 251),
           5: (184, 249),
           6: (211, 247),
           7: (151, 245),
           8: (242, 243),
           9: (173, 242),
           10: (191, 238)}
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-12-24
            • 2021-12-10
            • 1970-01-01
            • 1970-01-01
            • 2021-11-23
            • 1970-01-01
            • 2019-01-14
            • 2018-07-09
            相关资源
            最近更新 更多