如何根据列表中的字典分配多个变量(列表排序不同 运行)

How to assign multiple variables based on dicts in a list (The list is sorted different each run)

假设我有这个数据:

data = [{'name': "Name 1", 'value': None}, {'name': "Name 2", 'value': None}, {'name': "Name 3", 'value': None}]

假设每次代码为 运行,我如何根据此数据分配三个变量,dicts 可能会被打乱。这意味着“名称 1”可能会在索引 0、1 或 2 中找到。

我试过这个:

for x in data:
  if x['name'] == 'Name 1':
      a = x['value']
      continue
  if x['name'] == 'Name 2':
      b = x['value']
      continue
  if x['name'] == 'Name 3':
      c = x['value']
      continue

但我觉得这很丑陋。有没有更好、更 Pythonic 的方式?

a, b, c = ??

您可以将 data 列表转换为临时字典,其中键是名称。例如:

data = [
    {"name": "Name 1", "value": None},
    {"name": "Name 2", "value": None},
    {"name": "Name 3", "value": None},
]

tmp = {d["name"]: d["value"] for d in data}
a, b, c = tmp.get("Name 1"), tmp.get("Name 2"), tmp.get("Name 3")

print(a, b, c)

打印:

None None None