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如何实现守护进程的方法示例
Feb 08 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
python处理大日志文件
Jul 23 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
通过实例了解python__slots__使用方法
Sep 14 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
在Python中如何使用yield
Jun 07 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 Python
Pillow图像处理库安装及使用
Apr 12 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 什么是PEAR?
2009/03/19 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
java解析json方法总结
2019/05/16 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
细说javascript函数从函数的构成开始
2013/08/29 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python中的多线程实例教程
2014/08/27 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
简单谈谈python中的语句和语法
2017/08/10 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
Django后台admin的使用详解
2019/07/08 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
幼儿园新学期寄语
2014/01/18 职场文书