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自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
python去除所有html标签的方法
May 05 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
python实现猜单词小游戏
May 22 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
解决python文件双击运行秒退的问题
Jun 24 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
Jun 24 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 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下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
python与C互相调用的方法详解
2017/07/14 Python
Python编程之string相关操作实例详解
2017/07/22 Python
python版DDOS攻击脚本
2019/06/12 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
python 三元运算符使用解析
2019/09/16 Python
Python PyQt5整理介绍
2020/04/01 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
python Canny边缘检测算法的实现
2020/04/24 Python
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
JAVA中运算符的分类及举例
2015/09/12 面试题
物流专业求职计划书
2014/01/10 职场文书
运动会通讯稿400字
2014/01/28 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python