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实现从字符串中找出字符1的位置以及个数的方法
Aug 25 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
Python的argparse库使用详解
Oct 09 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
树莓派升级python的具体步骤
Jul 05 Python
Django serializer优化类视图的实现示例
Jul 16 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
python try...finally...的实现方法
Nov 25 Python
深入理解Python变量的数据类型和存储
Feb 01 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套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
Script的加载方法小结
2011/01/12 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
python编程开发之日期操作实例分析
2015/11/13 Python
python中字符串的操作方法大全
2018/06/03 Python
python实现浪漫的烟花秀
2019/01/30 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
css3学习心得分享
2013/08/19 HTML / CSS
大学毕业生简单自荐信
2013/11/05 职场文书
厨师长岗位职责
2014/03/02 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
安全生产专项整治方案
2014/05/06 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
水电工程师岗位职责
2015/02/13 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
MySQL系列之四 SQL语法
2021/07/02 MySQL
vue使用echarts实现折线图
2022/03/21 Vue.js
Python中requests库的用法详解
2022/06/05 Python