【问题标题】:Adding to integers in a list which is inside a dictionary添加到字典内的列表中的整数
【发布时间】:2017-12-07 03:19:48
【问题描述】:

我有一个字典,它在列表中包含一些整数值:

d = {"Numbers": [5, 10, 15, 20]}

如何访问列表中的整数并一次性添加到它们中?所以如果我想加 10,它看起来像这样:

d = {"Numbers": [15, 20, 25, 30]}

感谢您的帮助!

【问题讨论】:

  • dict['Numbers'] 会给你这个列表,但是请把你的变量名从dict 改成别的名字,dict 是一个内置的名字。

标签: python python-2.7 list dictionary


【解决方案1】:

你可以使用list comprehension:

d['Numbers'] = [i+10 for i in d["Numbers"]]

稍微详细一点:

new = [i+10 for i in d['Numbers']]
d.update({"Numbers": new})

【讨论】:

    【解决方案2】:

    如果字典包含或将包含多个键,您可以使用字典推导然后列表推导:

    d = {"Numbers": [5, 10, 15, 20]}
    new_d = {a:[i+10 for i in b] for a, b in d.items()}
    

    【讨论】:

      【解决方案3】:

      你有:

      d = {"Numbers": [5, 10, 15, 20]}
      add = 10 # Amount you want to increase.
      

      你可以发list comprehension:

      d['Numbers'] = [v + add for v in d['Numbers']]
      

      同理:

      tmp_list = []
      for v in d['Numbers']:
          tmp_list.append(v + add)
      d['Numbers'] = tmp_list
      

      但在一行中。

      如果你想增加字典中每个键的所有项目:

      d = {k:[n + add for n in v] for k, v in d.items()}
      

      这是一个字典理解,它等于:

      tmp_dict = {}
      for k,v in d.items():
          tmp_dict[k] = []
          for n in v:
              tmp_dict[k].append(n + add)
      d = tmp_dict
      

      【讨论】:

        【解决方案4】:

        每个人都会使用循环为您提供相同的旧方法:

        没有循环怎么办:)

        d = {"Numbers": [5, 10, 15, 20]}
        
        
        
        list(map(lambda x:list((map(lambda y:x.__setitem__(x.index(y),y+10),x))),d.values()))
        print(d)
        

        输出:

        {'Numbers': [25, 30, 15, 20]}
        

        【讨论】:

          猜你喜欢
          • 2019-12-14
          • 2018-08-27
          • 1970-01-01
          • 2023-02-26
          • 1970-01-01
          • 2023-03-27
          • 1970-01-01
          • 2018-07-30
          • 1970-01-01
          相关资源
          最近更新 更多