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中查找excel某一列的重复数据 剔除之后打印
Feb 10 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
Python 基础教程之str和repr的详解
Aug 20 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
使用Python制作一个打字训练小工具
Oct 01 Python
用Python画小女孩放风筝的示例
Nov 23 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
Apr 07 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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开发中常用的字符串操作函数
2011/02/08 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
vue中轮训器的使用
2019/01/27 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
Python计算一个文件里字数的方法
2015/06/15 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
入党自我评价范文
2014/02/02 职场文书
法制宣传日活动总结
2014/04/29 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js