使用python计算字母在某个位置出现的次数
我是一名python初学者,遇到了这个问题,我不确定如何着手解决它 如果我有以下序列/字符串: 关贸总协定 GTACGC 如何计算每个字母在每个位置出现的频率。ie)G在两个序列中的位置1处出现两次,A在位置1处出现零次等使用python计算字母在某个位置出现的次数,python,string,count,position,frequency,Python,String,Count,Position,Frequency,我是一名python初学者,遇到了这个问题,我不确定如何着手解决它 如果我有以下序列/字符串: 关贸总协定 GTACGC 如何计算每个字母在每个位置出现的频率。ie)G在两个序列中的位置1处出现两次,A在位置1处出现零次等 任何帮助都将不胜感激,谢谢 您可以使用和的组合,例如: 这将构建一个嵌套的defaultdict,它将字符作为第一个键,位置作为第二个键,并提供所述字符在所述位置出现的次数 如果需要职位计数列表: max_len = max(map(len, sequences)) d =
任何帮助都将不胜感激,谢谢 您可以使用和的组合,例如: 这将构建一个嵌套的
defaultdict
,它将字符作为第一个键,位置作为第二个键,并提供所述字符在所述位置出现的次数
如果需要职位计数列表:
max_len = max(map(len, sequences))
d = defaultdict(lambda: [0]*max_len) # d[char] = [pos0, pos12, ...]
for seq in sequences:
for i, char in enumerate(seq):
d[char][i] += 1
d['G'] # [2, 0, 0, 0, 1, 1]
您可以使用和的组合,例如: 这将构建一个嵌套的
defaultdict
,它将字符作为第一个键,位置作为第二个键,并提供所述字符在所述位置出现的次数
如果需要职位计数列表:
max_len = max(map(len, sequences))
d = defaultdict(lambda: [0]*max_len) # d[char] = [pos0, pos12, ...]
for seq in sequences:
for i, char in enumerate(seq):
d[char][i] += 1
d['G'] # [2, 0, 0, 0, 1, 1]
不确定这是否是最好的方法,但您可以使用zip对字符串进行某种转置,在每个位置生成字母元组,例如:
x = 'GATCCG'
y = 'GTACGC'
zipped = zip(x,y)
print zipped
将作为输出生成:
[('G', 'G'), ('A', 'T'), ('T', 'A'), ('C', 'C'), ('C', 'G'), ('G', 'C')]
您可以从元组中看到,两个字符串的第一个位置包含两个G,第二个位置包含一个A和一个T,等等。然后您可以使用计数器(或其他方法)获取所需内容 不确定这是最好的方法,但您可以使用zip对字符串进行某种转置,在每个位置生成字母元组,例如:
x = 'GATCCG'
y = 'GTACGC'
zipped = zip(x,y)
print zipped
将作为输出生成:
[('G', 'G'), ('A', 'T'), ('T', 'A'), ('C', 'C'), ('C', 'G'), ('G', 'C')]
您可以从元组中看到,两个字符串的第一个位置包含两个G,第二个位置包含一个A和一个T,等等。然后您可以使用计数器(或其他方法)获取所需内容 你想要什么格式的?你能给我们举个例子吗,比如
{'g':[2,0,0,0,1,1],…}
?这就是你想要的吗?是的,一本字典就好了!你想要什么格式的?你能给我们举个例子吗,比如{'g':[2,0,0,0,1,1],…}
?这就是你想要的吗?是的,一本字典就好了!对不起,你能解释一下这是做什么的吗?哦,谢谢,我得到了一些输出,我明白了。我希望输出看起来更像{'g':[2,0,0,0,1,1],…},这可能吗。现在你应该得到保护。我认为defaultdicts的功能相当直观。再次抱歉,我在d[char].append[I]行中遇到了一个类型错误。TypeError:“内置函数”或“方法”对象不可下标?我做了一些编辑。使用当前版本。它经过测试;)对不起,你能解释一下这是做什么的吗?哦,谢谢,我得到了一些输出,我明白了。我希望输出看起来更像{'g':[2,0,0,0,1,1],…},这可能吗。现在你应该得到保护。我认为defaultdicts的功能相当直观。再次抱歉,我在d[char].append[I]行中遇到了一个类型错误。TypeError:“内置函数”或“方法”对象不可下标?我做了一些编辑。使用当前版本。它经过测试;)