美文网首页
Python 随笔

Python 随笔

作者: 斩毛毛 | 来源:发表于2020-05-01 14:10 被阅读0次
  1. 字典中,get()的用法
colors = ['red','green','blue','red']
d = {}
for  i in colors:
       d[i] = d.get(i, 0) +1
# 若无key值,可任意设置缺省值
  1. sorted
lis = ['red','blue','pep','yellow']
print(sorted(lis,key=len, reverse=True))
# key 按长度排序,True表示降序,False表示升序
  1. eval exec
  • eval:字符串求值并返回结果,不支持任何形式赋值操作,如eval(“2*3”)结果返回6
  • exec;执行字符串中的内容,exec(“print("adc")”)。结果adc
  1. heapq库,以及Counter
# heapq可以取自定义的最大或者最小值个数,
lis = [1,2,3,4,5,6,7]
# 取出列表中最大的两个数字
heapq.nlargester(2,lis)
[6,7]

# Counter可以计算一个列表中数字出现的次数
from collections import Counter
 a = [11,2,2,3,4,5,6,6,7,8,8]
Counter(a)
Counter({2: 2, 6: 2, 8: 2, 3: 1, 4: 1, 5: 1, 7: 1, 11: 1}) 
# 得到一个字典形式
  1. 若遇到unhashbale..则取一个临时变量代替

  2. 若想用python2 除法得到小数,则需要添加一个模块

 from __future__ import division
# 这样做除法就会得到真实值
  1. 将fasta格式序列存入字典时
#一下代码不可取
#!/usr/bin/env python
import sys
info = {}
with open(sys.argv[1]) as f,\
     open("result.fa","w") as o:
     for i in f:
         if '>' in i:
            key = i.strip()
            info[key] = ''
         else:
            info[key] += i.strip()
     for k,v in info.items():
         o.write("%s\n%s\n" %(k,v))

# 上述以字符串形式进行添加,字符串的追加并不是在原来的基础上进行追加,而是将追加后的字符串重新开辟一块新的内存,时间更长

#应该以列表的形式进行添加

#!/usr/bin/env python

import sys,time

info = {}
with open(sys.argv[1]) as f,\
     open("result.fa","w") as o:
     for i in f:
         if '>' in i:
            key = i.strip()
            info[key] = []
         else:
            info[key].append(i.strip())
     for k,v in info.items():
         o.write("%s\n%s\n" %(k,"".join(v)))
  1. 循环
  • 最基础列表推倒式
[x*2 for x in range(5)]
[0, 2, 4, 6, 8]
  • 带有if语句
# 去除列表中所有偶数,一个条件
L = [1,2,3,4,5,6]
L = [x for x in L if X %2 !=0]
L
[1,3,5]

# 多个条件
print [x for x in range(10) if x %2 ==0 and x %6 ==0]
[0, 6]

#if-else
print [x+1 if x>=5 else x*10 for x in range(10)]
[0, 10, 20, 30, 40, 6, 7, 8, 9, 10]
  • 带有for嵌套
#嵌套时,按照从左到右顺序,分别是外层循环到内层循环
[x + y for x in 'ab' for y in 'jk']
['aj','ak','bj','bk']
  • 既有if语句又有for嵌套
[(x,y) for x in range(5) if x %2 ==0 for y in range(5) if y %2 ==1]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
  1. zip() 函数
##合并list,得到元组的列表
a = [1,2,3]
b = [1,2,3]
zip(a,b)
得到:[(1, 1), (2, 2), (3, 3)]

## 添加*,可对list中的元素进行组合
all = [[1, 2, 3], [1, 2, 3], [1, 2,3]]
zip(*all)
得到:[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
  1. python搜索路径添加
    倒入python模块时,是根据python所处的python路径来进行查找。
# 列出python所有的路径
python
import sys
sys.path
# 即可得到所有的路径
## 若想添加路径,可以在脚本中进行添加:
import sys
sys.path.append("module/path")
## 或者修改~/.bashrc
export PYTHONPATH=/Your/modelu/PATH/:$PYTHONPATH
source ~/.bashrc
  1. re 中特殊构造
(?: ..) 和(...)功能差不多,但是不作为分组,可理解为一个整体,如下例子
(?:abc){2}        ----> abcabc
abc{2}              ----> abcc
  1. 清空python路径
    遇到如下报错时AttributeError: module 'enum' has no attribute 'IntFlag',
    是PYTHONPATH的设置错误,在.bashrc中存留有以前使用python2时留下的配置,导致python3不能找到正确的enum位置,注释掉bashrc中相关语句后,清空$PYTHONPATH变量即可
unset PYTHONPATH
 #查看是否清空
 echo $PYTHONPATH

13、如何打开bam文件

使用一个模块os.popen()

import os
os.popen(command[, mode[, bufsize]])
- command: 命令
- mode: 'r' 或者‘w'; 默认'r'
- bufsize: 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。

## 比如打开bam文件
f = os.popen('samtools view '+ sam_file, 'r')

14、简历虚拟环境

python -m venv T_ve && source T_ve/bin/activate

相关文章

  • python 总结

    python 随笔 关键字 基础 内建函数 技巧 模块 进阶

  • python学习札记

    随笔记 python中,注释语句用【alt+3】,反注释用【alt+4】 python中的几个词汇ClassIns...

  • Python自学分享第一天

    注:本python文集 是笔者自学python的笔记及心得分享,持续更新中......欢迎广大读者跟随笔者自学py...

  • python多线程的初步探索(从Queue探索)

    前言 自学了快4天的python。有些东西还是需要自己记录一下,故此写下该随笔。 在学习python的时候,编写多...

  • Qtreewidget

    样例源码PyQt(Python+Qt)学习随笔:树型部件的QTreeWidget的itemAbove、itemBe...

  • python随笔

    python中字符串不转义 r' ',类似于xml中的。 取字符的整数o...

  • python随笔

    print (‘ ’) 输出,最后面没有分号 name = input(’name‘)输入,()里面可以写输提示内...

  • Python随笔

    根据控制台输入数字的参数判断数值大小

  • Python随笔

    最近在学习Python,说来惭愧,工作几年后才发现对编程也挺感兴趣,上学时候也有一些零星的编程基础,现在学起来也不...

  • Python 随笔

    1 函数默认参数的陷阱 代码示例: 上面的第三次调用,函数不是使用一个空数组作为参数,而是使用了与第一次调用时相同...

网友评论

      本文标题:Python 随笔

      本文链接:https://www.haomeiwen.com/subject/tvxqghtx.html