迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中使用变量作为键创建字典

作者:迹忆客 最近更新:2023/01/04 浏览次数:

Python 中使用变量作为键创建字典:

  1. 使用字典推导来迭代变量名称。
  2. 使用 eval() 函数获取每个变量的值。
  3. 返回每个键值对。
first_name = 'fql'
last_name = 'jiyik'
site = 'jiyik.com'

# ✅ 从变量创建字典(使用 eval())
my_dict = {key: eval(key) for key in ['first_name', 'last_name', 'site']}

# 👇️ {'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com'}
print(my_dict)

# -------------------------------------------------------------------
# ✅ 从变量创建字典(使用 globals())

my_dict = {key: globals()[key] for key in ['first_name', 'last_name', 'site']}

# 👇️ {'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com'}
print(my_dict)

Python 中使用变量作为键创建字典

我们使用字典推导来迭代包含变量名称的列表。

字典推导与列表推导非常相似。

他们对字典中的每个键值对执行一些操作,或者选择满足条件的键值对的子集。

first_name = 'fql'
last_name = 'jiyik'
site = 'jiyik.com'

my_dict = {key: eval(key)
           for key in ['first_name', 'last_name', 'site']}

# 👇️ {'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com'}
print(my_dict)

在每次迭代中,我们将变量名称分配给键并使用 eval() 函数获取相应的值。

eval 函数接受一个表达式,解析它并将其作为 Python 表达式求值,使用全局和局部字典作为全局和局部命名空间。

请注意 ,我们必须指定创建字典时将使用的变量的名称。

eval() 函数应该只与受信任的代码一起使用。 不要对用户生成的数据使用 eval()

如果在使用 eval() 时遇到 linting 错误,请改用 globals() 字典。


使用 globals() 创建一个使用变量作为键的字典

  1. 使用字典推导来迭代变量名称。
  2. 使用 globals() 字典访问每个变量的值。
  3. 返回每个键值对。
first_name = 'fql'
last_name = 'jiyik'
site = 'jiyik.com'

my_dict = {key: globals()[key] for key in ['first_name', 'last_name', 'site']}

# 👇️ {'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com'}
print(my_dict)

globals 函数返回一个实现当前模块命名空间的字典。

first_name = 'fql'
last_name = 'jiyik'
site = 'jiyik.com'

globals_dict = globals()

# 👇️ {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x109ff1a10>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/Users/jiyik/workspace/python/study/main.py', '__cached__': None, 'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com', 'globals_dict': {...}}
print(globals_dict)

我们使用括号表示法来访问每个键的值并返回键值对。

我们也可以使用 for 循环来获得相同的结果。

first_name = 'fql'
last_name = 'jiyik'
site = 'jiyik.com'

my_dict = {}

for key in ['first_name', 'last_name', 'site']:
    my_dict[key] = globals()[key]

# 👇️ {'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com'}
print(my_dict)

我们使用 for 循环遍历包含变量名称的列表,并将每个变量名称及其值分配为字典项。

或者,我们可以将一组键值对传递给 dict() 类。

first_name = 'fql'
last_name = 'jiyik'
site = 'jiyik.com'

my_dict = dict((key, globals()[key])
               for key in ['first_name', 'last_name', 'site'])


# 👇️ {'first_name': 'fql', 'last_name': 'jiyik', 'site': 'jiyik.com'}
print(my_dict)

dict() 函数可以传递一个可迭代的键值对并返回一个新字典。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Pandas 插入方法

发布时间:2024/04/23 浏览次数:112 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:199 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便