如何读取保存一些list信息的txt,生成有一组名字有规律的list
回复“资源”即可获赠Python学习资料
今
日
鸡
汤
乡书何处达?归雁洛阳边。大家好,我是皮皮。
一、前言前几天在Python白银交流群有个叫【大侠】的粉丝问了一个Python列表处理的问题,这里拿出来给大家分享下,一起学习下。
请教:如何读取保存一些list信息的txt,生成有一组名字有规律的list,如list1,list2,list3...
[1,"西游记",""吴承恩",孙悟空","猪八戒","唐僧"][2,"钢铁是怎样炼成的","奥斯特洛夫斯基","保尔柯察金","冬妮娅"][3,"红楼梦",""贾宝玉",林黛玉][4,"三国演义",""孔明",曹操","关羽","貂蝉"]
想处理成:
list1=[1,"西游记",""吴承恩",孙悟空","猪八戒","唐僧"]list2=[2,"钢铁是怎样炼成的","奥斯特洛夫斯基","保尔柯察金","冬妮娅"]list3=[3,"红楼梦",""贾宝玉",林黛玉]list4=[4,"三国演义",""孔明",曹操","关羽","貂蝉"]
这个题目有点尴尬,不知道他具体的实际场景,但是目前就是要这么个效果。
二、解决过程【dcpeng】解答这里【dcpeng】给出了解答,纯粹往结果上靠。
final_lst=[]withopen("data.txt","r",encoding="utf-8")asf:lines=f.readlines()foriinrange(1,len(lines)+1):new_line=f"list{i}="+lines[i-1]print(new_line)final_lst.append(new_line)withopen("new_data.txt","w",encoding="utf-8")asf:fordatainfinal_lst:f.write(data+"\n")
乍一看,确实是完成了任务,不过似乎没没有完成需求。
看似解决,还需优化。
【月神】解答这里【月神】给了一个答案,用到了exec()函数,如下图所示:
【瑜亮老师】解答这里【瑜亮老师】也给出了一个代码,也用到了exec()函数,如下所示:
withopen("shouju03.txt","r",encoding="utf-8")asf:data=f.readlines()fork,vinenumerate(data):value=eval(v)exec(f"list_{k+1}={value}")print(list_1)print(list_2)print(list_3)print(list_4)
代码截图:
细心的小朋友们可能已经发现了,不论是【月神】还是【瑜亮老师】的代码截图里边,变量list1、list2、list3、list4打印的时候都带了红色的下划线,按说我们在pycharm中遇到红色下划线是报错的节奏,其实在这里并不是的,需要稍微注意一下。本质原因是exec()函数执行之后,是没有返回值的,所以在pycharm中找不到对应的值,会提示红色的下划线告警,但是实际上不是报错。与之对应的eval()函数是有返回值的,这点是它们两个内置函数最大的区别。
最后放个【瑜亮老师】的完整的代码:
# txt文件内容如下:#list1=[1,"西游记","吴承恩","孙悟空","猪八戒","唐僧"]#list1=[2,"钢铁直男","拖拉机","保尔","冬妮娅"]#list1=[3,"红楼梦","贾宝玉","林黛玉"]#list1=[4,"三国演义","孔明","诸葛亮","军师","中路法师"]withopen("shouju03.txt","r",encoding="utf-8")asf:data=f.readlines()print("下面是批量生成列表变量,并直接赋值")fork,vinenumerate(data):#这里使用字符串切片去除文件中每行前面多余的字符串#并调用eval方法把字符串变为列表value=eval(v[6:])#生成变量并赋值exec(f"list_{k+1}={value}")#直接调用变量,输出它的值print(f"list_{k+1}={value}")print("下面是直接调用变量")print("list_1=",list_1)print("list_2=",list_2)print("list_3=",list_3)print("list_4=",list_4)
这块还是蛮考验Python基础的,基础不牢,地动山摇!
三、总结大家好,我是皮皮。这篇文章针对如何读取保存一些list信息的txt,生成有一组名字有规律的list的问题,给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。
最后感谢粉丝【大侠】提问,感谢【dcpeng】、【瑜亮老师】、【月神】给出的具体解析和代码演示,感谢【黑脸怪】、【冫马讠成】、【猫药师Kelly】、【PI】等人参与学习交流。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
-------------------End-------------------
往期精彩文章推荐:
Python列表中的深浅拷贝,你学废了嘛?
只用3行Python代码,获取星期几?
Python面向对象中的类变量,实例变量怎么来理解?
Python网络爬虫真实的URL看来真不能光凭着XHR找
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...