首页 > 解决方案 > 查找列表的长度

问题描述

下面是我的代码。我需要一些帮助来获取预期的输出。

name = []

backup = []

data = {
    "details": [
        {"vm": "disk1", "backupname": "backup1"},
        {"vm": "disk1", "backupname": "backup2"}, 
        {"vm": "disk1", "backupname": "backup3"},
        {"vm": "disk2", "backupname": "newbackup"}
    ]
}

for detail in data["details"]:
    name.append(detail['vm'])
    backup.append(detail['backupname'])

print(name)

print(backup)

实际输出:

name = ['disk1', 'disk1', 'disk1', 'disk2']

number of backup = ['backup1', 'backup2', 'backup3', 'newbackup']

预期输出:

name = ['disk1', 'disk2']

number of backup = [3, 1]

我无法获得每个磁盘的备份计数。

标签: pythonlistdictionaryappend

解决方案


name = {}
backup = {}

data = {
"details":[{"vm":"disk1","backupname":"backup1"},{"vm":"disk1","backupname":"backup2"}, 
{"vm":"disk1","backupname":"backup3"},{"vm":"disk2","backupname":"newbackup"}]}
for detail in data["details"]:
    if not name.get(detail['vm']):
      name[detail['vm']] = 1
    else :
      name[detail['vm']] += 1

print(name)

输出:

{'disk1': 3, 'disk2': 1}

推荐阅读