• python原生数据结构:元组Tuple(),列表List[],集合Set{},字典Dictionary{A:B};

p019_将两个文本文档的部分内容合并,并且使结果输出到一个新的.txt文本文档中


course_teacher = {}
with open(r"datas/course_teacher.txt",encoding="utf-8") as fin:for line in fin:line = line[:-1]course, teacher = line.split(",")#if course not in course_teacher:course_teacher[course] = teacher#course_teacher.append[course] =print(course_teacher)with open ("./course_student_grade_input.txt",encoding="utf-8") as fin:for line in fin:line = line[:-1]course, sno, sname, sgrade = line.split(",")teacher = course_teacher.get(course)    #数据合并print(course, teacher, sno ,sname, sgrade)def write_file(course, teacher, sno ,sname, sgrade):with open("./course_teacher_map.txt", "w") as fout:  # "w"代表写出for data in course, teacher, sno ,sname, sgrade:fout.write(",".join(data) + "\n")
#生成一个新文件
write_file(course, teacher, sno ,sname, sgrade)

生成了这样一个文档,与结果比对,只将最后一行的元组键输出,所以存在错误存疑

p020

读取文件的两个方法:

1、按行读取:

for line in fin:

2、一次性读取所有内容到一个字符串

content = fin.read()

open

Python提供了非常方便的文件读写功能,其中open是读写文件的第一步,通过open读写文件的方式和把大象装冰箱是一样的

f = open("test.txt",'w')    #第一步,把冰箱门(文件)打开
f.write("this is content")  #第二步,把大象(文件内容)装进去
f.close()                   #第三步,把冰箱门关上,否则大象可能会跑掉

2.举例

2.1   "1.txt"和  "./1.txt"

这两个同等意义
在python中使用

3.python中 r'', b'', u'', f'' 的含义

"r" 的作用是去除转义字符

" f "开头表示在字符串内支持花括号{   }内的python 表达式

"b"表示是bytes类型

字符串前加 u

例:u"我是含有中文字符组成的字符串。"

作用:

后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

啊啊啊啊,差点因为一点点小问题有开始有点摆烂的我,这种未知的探索总会给我柳暗花明又一村的感觉,啊啊啊啊,我也有点太喜欢这样了。


import os
#扫描文件夹
data_dir = "datas/many_texts"contents = []for file in os.listdir(data_dir):file_path = f"{data_dir}/{file}"if os.path.isfile(file_path) and file.endswith(".txt"):with open(file_path,encoding="utf-8") as fin:contents.append(fin.read())#fin.read()读取文件的整个内容,将其放入contents里面#形成一个大的字符串
final_content = "\n".join(contents)with open("./datas/many_texts.txt","w") as fout:   #”w“写出模式fout.write(final_content)   #写出final_content的内容

with open(file_path) as fin:
with open(file_path,encoding="utf-8") as fin:

1、os.listdir——扫描文件夹
2、形成一个大的字符串  "\n".join

p021

小粗心酿成大问题

list可以使用.append,而字符串和字典dict不可以

List转换为其它数据结构

集合(Set)

  • 集合不会出现重复值,所有元素按照一定的顺序排列,若元素为数字则按数字大小排列,使用set()函数创建集合会自动的拆分多个字母组成的字符串
  • p021_students_like_count
    
    like_count = {}
    student = [like_count]
    sname1_list = []
    sname2_list = []
    sname3_list = []
    sname4_list = []
    #key = 球类项目,value = 喜欢人数
    with open("./datas/student_like.txt",encoding="utf-8") as fin:for line in fin:line = line[:-1]sname, likes = line.split(" ")likes_list = likes.split(",")for like in likes_list:#为什么sname没有输出打印,从此句的for循环就可以看出来if like not in like_count:like_count[like]= 0       #这个好像是确定value的值like_count[like] += 1#student.append()#if sname not in like_count:#for sname in sname_list:if like == "篮球":sname1_list.append(sname)      #sname在这里是临时变量if like == "足球":sname2_list.append(sname)if like == "台球":sname3_list.append(sname)if like == "羽毛球":sname4_list.append(sname)student.append(sname1_list)#print(sname)#like_count[sname] = print(sname)#like_count[sname] = "print(sname)"print(like_count)
    print(student)
    print("字典值转List:",list(like_count.values()))
    print("字典键转List:",list(like_count.keys()))
    print("打篮球的student: ",sname1_list)
    print("踢足球的student: ",sname2_list)
    print("打台球的student: ",sname3_list)
    print("打羽毛球的student: ",sname4_list)#提出问题:我想把喜欢各球类人名打印输出到like_count之后,该如何做
    #答:我没有把喜欢各球类的学生,放到dict中,而是新建了四个列表
    #如何让其循环生成列表???
  • #提出问题1:我想把喜欢各球类人名打印输出到like_count之后,该如何做
    #答:我没有把喜欢各球类的学生,放到dict中,而是新建了四个列表
    #提出问题2:如何让其循环生成列表???----------------- 问题2未解决

  • 自己提出创造问题,在查阅资料,看之前学过的人、前辈、同学总结经验,任何东西一定是自己亲身的动手实践才更加印象深刻,虽然过程是不顺利的,是让人烦躁的,但是解决问题的成就感又是无与伦比的,理论知识的学习是重要的,因为没有理论支撑,是很难去理解的,但直接并且将仅仅接触理论知识,又是不可以的,我认为当时学到的知识应用的只是问题最浅显的层面,但之后应用的层面问题不会超明显的告诉你,而是你自己去发掘,去构思,假设你现在的想法——给一个字典dict增加key值,但是增加key值又不是普通的增加,而是在一个key、value完全完整的条件下,再加东西,这个东西甚至不能称为key,剖析:(现在好像来了一点点想法)应该把like_count的key1、key2、key3转变成list,而后再用list.append

  • 但是如果暂时实现不了我们最初构想的想法,可以退而求其次,一个问题的解决方法又不是只有一种,对吧?哈哈哈

  • 字典dict转list和字典键转list一致

100例(p019—p021)相关推荐

  1. 语言趣味编程100例无水印_趣味c语言编程100例(三)

    经典c程序100例==51--60 [程序51] 题目:学习使用按位与 & . 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 2.程序源代 ...

  2. php经典100例,php趣味100例 - php天平称物

    php趣味100例 - php天平称物 (php,php趣味,php编程,php穷举法,php for循环的运用) <?php /* 天平称物 4个砝码:总质量是40克.砝码的重量是整数.各不相 ...

  3. 单片机c语言编程300例_趣味c语言编程100例(四)

    经典c程序100例==81--90 [程序81] 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,及809*? ...

  4. 求一批整数中出现最多的个位数字_C语言经典100例007-求低n-1位的数

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  5. fpga经典设计100例_图解运放电路/OP放大电路设计/OP放大器应用技巧100例

    <图解运算放大器电路>,图文结合,适合运放初学者. <OP放大电路设计>是"实用电子电路设计丛书"之一.<OP放大电路设计>内容分基础部分(1- ...

  6. python编程入门经典实例-编程语言入门经典100例【Python版】

    无论学习哪门计算机语言,只要把100例中绝大部分题目都做一遍,就基本掌握该语言的语法了. [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #Filena ...

  7. python经典100例答案pdf-Python 入门 100 案例,PDF免费下载

    原标题:Python 入门 100 案例,PDF免费下载 大家好,我是振哥.在过去一年多时间,我先后打磨了几个Python类开源教程.所有教程力求通俗易懂,有趣,并结合一个一个的小例子.小案例讲解,让 ...

  8. python趣味编程10例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

  9. 单片机c语言程序设计实训报告,(整理)单片机C语言程序设计实训100例.doc

    (整理)单片机C语言程序设计实训100例.doc .单片机C语言程序设计实训100例基于8051Proteus仿真案例第 01 篇 基础程序设计01闪烁的LED/* 名称闪烁的LED说明LED按设定的 ...

最新文章

  1. Visual Studio 2005 IDE 技巧和窍门
  2. 基于uPC2710T设计信标射频放大电路
  3. 一年半跻身网约车业务前二,现发起首个自动驾驶联盟,T3出行是一家怎样的公司?...
  4. PMP知识点(六、质量管理)
  5. java中所有的类都继承于_Java中所有的类都是通过直接或间接地继承( )类得到的...
  6. 使用expdp导出时评估所需存储容量大小
  7. 监控linux终端键盘输入,Linux内核实时监控键盘输入
  8. 自动生成四则运算题目
  9. 计算机出现黑屏问题方法派出,电脑重装系统开机常见黑屏问题的解决方法
  10. 旷视Face++回清华求教AI本质创新,姚期智授2锦囊,出任首席顾问
  11. 【链表】链表中环的入口结点
  12. Atitit. camel分词器 分词引擎 camel拆分 的实现设计
  13. FPGA学习——32位booth算法乘法器设计(串行输入、液晶屏输出)
  14. [渝粤教育] 山东职业学院 话说铁道 参考 资料
  15. WhereDidMyTimeGo - 一款帮你记录每天的时间分配的MacOS app
  16. 计算机网络第一章概论
  17. redis 主从、读写 相关
  18. 今日只为你狂欢-----JAVA线程总结(零基础入门)
  19. 十行代码将Redis缓存数据进行分页提取与展示
  20. Netty channelRegistered\ChannelActive---源码分析

热门文章

  1. 【C++面向对象程序设计——侯捷大师】心得摘要
  2. 伽罗华域上(Galois Field)上的四则运算-笔记
  3. 车规级芯片IC等级及其特点
  4. 论文《Image Recoloring Based on Object Color Distributions》整理笔记
  5. 谷歌浏览器打开显示2345或360等其他主页的解决方法
  6. 反弹socks代理。
  7. Tirp(状压DP)
  8. python爬取微信小程序(实战篇)_python爬取猫眼的前100榜单并展示在微信小程序
  9. 基于BP神经网络的PID控制,神经网络算法pid控制
  10. linux shift f11,然后按下CTRL+SHIFT+F11组合键