小能豆

将列表转换为字典

py

l = ["a", "b", "c", "d", "e"]

我想将此列表转换为字典,例如:

d = {"a": "b", "c": "d", "e": ""}

因此,基本上,偶数将是键,而奇数将是值。我知道我可以用“非 Python 式”的方式来做到这一点,例如使用 if 语句的 for 循环,但我相信应该有一种更“Python 式”的方式来实现这一点。所以,我很感激任何帮助 :)


阅读 21

收藏
2024-10-12

共1个答案

小能豆

zip您可以使用字典推导式将列表的元素配对在一起,以更符合 Python 风格的方式实现这一点。以下是其中一种方法:

l = ["a", "b", "c", "d", "e"]

# Create the dictionary with even elements as keys and odd elements as values
d = {l[i]: l[i+1] if i+1 < len(l) else "" for i in range(0, len(l), 2)}

print(d)

解释:

  • range(0, len(l), 2)``0, 2, 4, ...遍历列表的偶数索引( )。
  • l[i]访问偶数索引处的元素(成为键)。
  • l[i+1] if i+1 < len(l) else ""检查下一个元素是否存在(即,它是否在列表中),如果存在,则将其指定为值。如果不存在,则分配一个空字符串("")。

对于您的示例列表,这将输出:

{'a': 'b', 'c': 'd', 'e': ''}

这是针对您的问题的一个简洁且 Pythonic 的解决方案!

2024-10-12