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创建微信聊天机器人
Mar 31 Python
Python实现的直接插入排序算法示例
Apr 29 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
如何实现Django Rest framework版本控制
Jul 25 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
python颜色随机生成器的实例代码
Jan 10 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 Python
python爬虫用mongodb的理由
Jul 28 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
pytorch 如何使用batch训练lstm网络
May 28 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
ThinkPHP的L方法使用简介
2014/06/18 PHP
微信API接口大全
2015/04/15 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
什么是JavaScript
2009/08/13 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
python日志记录模块实例及改进
2017/02/12 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python3数字求和的实例
2019/02/19 Python
Django app配置多个数据库代码实例
2019/12/17 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
公务员转正鉴定材料
2014/02/11 职场文书
七一讲话心得体会
2014/09/05 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
中学生自我评价范文
2015/03/03 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers