当前位置: 首页 > news >正文

Python白练-2统计下列5行字符串中字符出现的频数

问题:统计下列5行字符串中字符a、c、g、t出现的频数

数据:data2_2:

1.aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg
2.cggaggacaaacgggatggcggtattggaggtggcggactgttcgggga
3.gggacggatacggattctggccacggacggaaaggaggacacggcggacataca
4.atggataacggaaacaaaccagacaaacttcggtagaaatacagaagctta
5.cggctggcggacaacggactggcggattccaaaaacggaggaggcggacggaggc

答案在评论区

解:


import numpy as np
a=[]
with open('data2_2.txt') as f:for (i, s) in enumerate(f):a.append([s.count('a'), s.count('c'),s.count('g'),s.count('t')])
b=np.array(a); print(b)

 析:

这段Python代码的主要目的是从一个名为data2_2.txt的文件中读取数据,并计算每一行中字符'a'、'c'、'g'和't'出现的次数,然后将这些次数以二维数组的形式存储在NumPy数组中,并打印出来。

下面是代码的逐行解释:

  1. import numpy as np:导入NumPy库,并给它一个别名np。NumPy是Python中用于处理大型多维数组和矩阵的库,它包含了大量的数学函数来操作这些数组。
  2. a=[]:初始化一个空列表a,用来存储每一行中字符'a'、'c'、'g'和't'出现的次数。
  3. with open('data2_2.txt') as f::使用with语句打开名为data2_2.txt的文件,并将文件对象赋值给f。这样做的好处是,当代码块执行完毕后,文件会自动关闭,不需要手动调用f.close()
  4. for (i, s) in enumerate(f)::遍历文件的每一行。enumerate(f)会同时返回行的索引(i)和行的内容(s)。
  5. a.append([s.count('a'), s.count('c'), s.count('g'), s.count('t')]):对于每一行s,使用count方法计算字符'a'、'c'、'g'和't'出现的次数,并将这四个数值作为一个列表添加到a中。
  6. b=np.array(a);:将列表a转换为NumPy数组,并赋值给b
  7. print(b):打印出NumPy数组b

最终,b将是一个二维数组,每一行包含一行文本中字符'a'、'c'、'g'和't'出现的次数。

注意:这段代码假设data2_2.txt文件存在于代码运行的同一目录下,并且每一行都可以被正常读取和计数。如果文件不存在或文件内容不是文本格式,代码可能会出现错误。

http://www.lryc.cn/news/318048.html

相关文章:

  • 深入理解DHCP服务:网络地址的自动化分配
  • Java高级编程—泛型
  • Exam in MAC [容斥]
  • Java 学习和实践笔记(36):接口(interface)
  • Elastic Stack--10--QueryBuilders UpdateQuery
  • 腾讯云服务器CVM_云主机_云计算服务器_弹性云服务器
  • Java八股文(Spring Boot)
  • ts文件怎么无损转换mp4?这样设置转换模式~
  • 如何在Windows 10上打开和关闭平板模式?这里提供详细步骤
  • 介绍kafka核心原理及底层刷盘机制,集群分片机制,消息丢失和重复消费有对应的线上解决方案
  • 基于Python的中医药知识问答系统设计与实现
  • QT 如何防止 QTextEdit 自动滚动到最下方
  • 【C/C++ 学习笔记】指针
  • 【Node.js从基础到高级运用】十二、身份验证与授权:JWT
  • 蓝桥杯刷题|01入门真题
  • Python Django相关解答
  • 在Linux/Ubuntu/Debian中使用7z压缩和解压文件
  • 设计一些策略和技术来防止恶意爬虫
  • elasticsearch常见问题:xpack.security.transport.ssl、unknown setting [node.master]
  • LLM(大语言模型)——Springboot集成文心一言、讯飞星火、通义千问、智谱清言
  • 什么是堆?什么是栈?
  • 【镜像转存】利用交互式学习平台killercoda转存K8S镜像至Docker私人仓库
  • ov多域名SSL数字证书1200元一年送一月
  • MySQL 系统变量查看与设置(System Variables Configuration)
  • 【Docker】apache 容器化部署
  • 基于element-plus +腾讯云COS实现图片上传
  • Kafka模拟器产生数据仿真-集成StructuredStreaming做到”毫秒“级实时响应StreamData落地到mysql
  • IDEA如何删除git最新一次远程提交
  • 什么是单向数据流
  • Qt 线程池 QThreadPool