python批量创建变量并赋值操作


Posted in Python onJune 03, 2021

一,简单的情况:

核心是exec函数,exec函数可以执行我们输入的代码字符串。exec函数的简单例子:

exec ('print "hello world"')
hello world

可以很清晰的看到,我们给exec传入一个字符串'print "hello world"',exec是执行字符串里面的代码print "hello world"。根据这个特性,我们可以用占位符实现我们对变量的定义,如:

exec ("temp%s=1"%1)

这段代码的意思是,让exec执行temp1=1。字符串里面的%s由‘1'代替了。我们在外面再套一个循环就可以实现对多个变量的定义了。

for i in range(10):
    exec ("temp%s=1"%i)

在这里,通过一个循环来生成10个变量,i的变化从0到9。用变量i替代%s,所以在每次循环里面,分别给temp0,temp1赋值。

执行结果:

python批量创建变量并赋值操作

如果想要替换多个占位符,可以这样写:

exec ("temp%s=%d"%(i,i))

在这里,分别以字符串、整数形式替换占位符,执行结果:

temp1=1

又如:

df_vars = [ 'df_%s_head' %i for i in range(0,10)]

df_vars:

['df_0_head',
 'df_1_head',
 'df_2_head',
 'df_3_head',
 'df_4_head',
 'df_5_head',
 'df_6_head',
 'df_7_head',
 'df_8_head',
 'df_9_head']

再比如:

for i in range(8):
     exec('v' + str(i) + ' = ' + str(i))
     print('v' + str(i) + ':', eval('v' + str(i)))

输出结果:

python批量创建变量并赋值操作

例子:

在python中,为了生成顺序的变量名并将其赋值,如

a_1 = []
a_2 = []
a_3 = []
.....
a_100 = []

可以利用将字符串转换成变量的函数exec

for i in range(1,100):
    b = 'a_' + str(i)
    exec(b + '= %r' % [])

二,略微复杂的命名

提取出:

D:/MyData/Excel/input/MarketHoliday_2018.xls

D:/MyData/Excel/input/MarketHoliday_2019.xls

。。。

D:/MyData/Excel/input/MarketHoliday_2023.xls

year = [2018,2019,2020,2021,2022,2023] 
file_path = 'D:/MyData/Excel/input/MarketHoliday_'  #注意:这里一定要用单引号

要先把year转为dict, 以便运用在For循环中,这里我用pandas转换

import pandas as pd
year = pd.Series(year)
year_dict = year.to_dict()

得到:

python批量创建变量并赋值操作

for i in year_dict:
    exec('Var_'+str(year_dict[i])+'='+'"'+(file_path + str(year_dict[i])+'.xls'+'"'))
    print('Var_'+str(year_dict[i])+':',eval('Var_'+str(year_dict[i])))

最终结果:

python批量创建变量并赋值操作

python 动态生成变量名及赋值

今晚在处理数据的时候偶然遇到一个命名上的难点,但是为了实现自动处理坚决不动手一条一条输入参数,我非要把它解决了,问题是这样的

首先我想要调用一个方法,然后输入的变量可以是字符串,但是,当你直接把字符串输入就不行了

这里献上代码:

t=['42342lh','234']
s='fgdfhdfhdfh'
exec(s+'=%s'%'t[0]')
print(fgdfhdfhdfh)
for i in range(2):
    m=f'names{i}'
    exec(m+'=%s'%'t[i]')
print(names1)

可以看出来m可以自己按规律这sing,同时也可以规律读取,最后每个m就成了变量。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python数组条件过滤filter函数使用示例
Jul 22 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
Django 如何实现文件上传下载
Apr 08 Python
Python PIL按比例裁剪图片
May 11 Python
详解运行Python的神器Jupyter Notebook
Jun 03 #Python
python中如何对多变量连续赋值
Python连续赋值需要注意的一些问题
Jun 03 #Python
pytorch fine-tune 预训练的模型操作
Jun 03 #Python
Python实现byte转integer
Jun 03 #Python
Python数据分析之绘图和可视化详解
Python数据分析之pandas读取数据
Jun 02 #Python
You might like
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
PHP asXML()函数讲解
2019/02/03 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
js压缩利器
2007/02/20 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
jupyter notebook实现显示行号
2020/04/13 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Sql面试题
2013/03/20 面试题
关于毕业的中学校园广播稿
2014/01/26 职场文书
大学生村官演讲稿
2014/04/25 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
外科护士长工作总结
2015/08/12 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
mysql如何查询连续记录
2022/05/11 MySQL