Python 官网: https://www.python.org/
这里,才 python 前沿。可惜是英文原版。所以,我要练习英文阅读。🧐🧐
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
笔记:提取 python 变量名字符串
例子数据
# 例子数据:六名学生每天跳绳练习个数记录(4月9日至4月16,8天)。
# 原始数据
Tom = 453, 307, 618, 742, 267, 346, 299
Rose = 303, 421, 512, 289, 306, 404, 398
Jhon = 367, 431, 519, 279, 336, 374, 366
Anna = 273, 391, 512, 289, 306, 404, 398
Duo = 283, 371, 507, 243, 323, 364, 327
Liuyi = 347, 291, 472, 329, 345, 417, 368
globals() 提取
学习 pandas 的时候,遇到要把一列表变量名用用 DataFrame 索引设置,就要把列表中的姓名变量名变成字符串。手动操作时,想到要是数据是“成千上万”哩,因而就搜寻一个代码实现的方法。查阅多篇大佬博文,明白了 globals()、dir() 都可以获取当前作用域的所有变量名字符串(前者返回字典,key 是变量名字符串,value 是变量名指向的对象;后者返回列表,列表元素为变量名字符串。),才得以代码实现。
集群提取
代码
# 数据初处理:数据整合成一个列表,姓名字符列表准备好用来重置索引。
names = [Tom, Rose, Jhon, Anna, Duo, Liuyi]
tem = globals() # 全局变量字典获取函数取别名,简化后续语句,方便读写。
# 从全局变量名字典中列表解析 names 中的变量名字符串。
# 直接对字典用一个变量遍历,就是对 key 操作,key 即是 globles() 获取的变量名字符串。
names_str = [i for i in tem if tem[i] in names]
# if 语句意即全局变量字典中 i 字符名称对应的变量在 names 中就解析出该字符串。
print(f'\n\n从全局变量中解析出 names 字符列表:\n\n{names_str}')
输出
单个提取
代码
name_str = [i for i in tem if tem[i] is Tom]
# if 语句意即全局变量字典中 i 字符名称对应的变量是 Tom 对应的变量,就解析出该字符串。
print(f"\n\n获取单个变量名字符串:{'Tom = '}{name_str}")
单个变量名字符串获取,if 条件筛选语句中的条件语句 用 is 或者 == 都是一样可行的。
输出
dir() 提取
代码
names_dir = [i for i in dir() if '_' not in i] # 摘除带下划线的变量名字符串。
print(f"\n\n dir() 获取变量名字符串列表:\n\n{names_dir}")
输出
注意:
一、globals() 获取的变量字典,是按变量名在代码中出来的顺序排列的。
二、dir() 收集的变量名字符串列表是按变量名字符串升序排列的。
dir() 收集的列表用下标取用,没得 globals() 获取的变量字典使用方便。
完整 Python 代码
我的解题思路,已融入代码注释,博文中就不再赘述。
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
#!/sur/bin/env python
# coding: utf-8
'''
filename: /sdcard/qpython/tem.py
梦幻精灵_cq的炼码场
'''
print('\n'*3) # 打印空行。
# 从自码工具模块加载需用代码块:输出色彩控制、暂停代码运行。
from mypythontools import color, wait
# 例子数据:六名学生每天跳绳练习个数记录(4月9日至4月16,8天)。
# 原始数据
Tom = 453, 307, 618, 742, 267, 346, 299
Rose = 303, 421, 512, 289, 306, 404, 398
Jhon = 367, 431, 519, 279, 336, 374, 366
Anna = 273, 391, 512, 289, 306, 404, 398
Duo = 283, 371, 507, 243, 323, 364, 327
Liuyi = 347, 291, 472, 329, 345, 417, 368
# 数据初处理:数据整合成一个列表,姓名字符列表准备好用来重置索引。
names = [Tom, Rose, Jhon, Anna, Duo, Liuyi]
tem = globals() # 全局变量字典获取函数取别名,简化后续语句,方便读写。
# 从全局变量名字典中列表解析 names 中的变量名字符串。
# 直接对字典用一个变量遍历,就是对 key 操作,key 即是 globles() 获取的变量名字符串。
names_str = [i for i in tem if tem[i] in names]
# if 语句意即全局变量字典中 i 字符名称对应的变量在 names 中就解析出该字符串。
print(f'\n\n从全局变量中解析出 names 字符列表:\n\n{names_str}')
name_str = [i for i in tem if tem[i] is Tom]
# if 语句意即全局变量字典中 i 字符名称对应的变量是 Tom 对应的变量,就解析出该字符串。
print(f"\n\n获取单个变量名字符串:{'Tom = '}{name_str}")
names_dir = [i for i in dir() if '_' not in i] # 摘除带下划线的变量名字符串。
print(f"\n\n dir() 获取变量名字符串列表:\n\n{names_dir}")
wait()
上一篇: pandas 数据类型之 Series
我的HOT博:
- 用 pandas 解一道小题(1911阅读)
- 可迭代对象和四个函数(1040阅读)
- “快乐数”判断(1198阅读)
- 罗马数字转换器(构造元素取模)(1891阅读)
- 罗马数字(转换器|罗生成器)(2519阅读)
- Hot:让QQ群昵称色变的代码(15091阅读)
- 斐波那契数列(递归| for )(3160阅读)
- 柱状图中最大矩形(1623阅读)
- 排序数组元素的重复起止(1215阅读)
- 电话拨号键盘字母组合(1271阅读)
- 密码强度检测器(1727阅读)
- 求列表平衡点(1786阅读)
- Hot: 字符串统计(3399阅读)
- Hot:尼姆游戏(聪明版首发)(3318阅读)尼姆游戏(优化版)(893阅读)
推荐条件
点阅破千
精品文章:
- 好文力荐:《python 完全自学教程》齐伟书稿免费连载
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室