如何解决如何返回由2个字母的每个单词出现的次数组成的字典
键:GT-值:1
键:CT-值:8
代码:
private fun showDialog() {
BottomSheetDialog(requireActivity(),R.style.CustomizedBottomDialogStyle).apply {
window?.setSoftInputMode(WindowManager.LayoutParams.soFT_INPUT_ADJUST_RESIZE)
setonShowListener {
Handler().post {
val bottomSheet = findViewById<View>(R.id.design_bottom_sheet) as? FrameLayout
bottomSheet?.let {
BottomSheetBehavior.from(it).state = STATE_EXPANDED
}
}
}
setContentView(R.layout.dialog_layout)
// Your code goes here....
show()
}
}
我得到了def occurrences2letters(sequence):
dico = {}
for i in range(len(sequence)-1):
key = sequence[i]+sequence[i+1]
dico[key] = dico.get(key,0) + 1
return dico
现在,我想要另一个代码来帮助我在开始时显示结果。目前,我已经编写了代码的那部分,但是没有用
{'AC': 1,'CC': 3,'CT': 8,'TA': 7,'AG': 7,'GC': 7,'CA': 1,'AT': 2,'TG': 2,'GT': 1,'GA': 1,'AA': 1,'TC': 2,'CG': 1,'GG': 1,'TT': 2}
解决方法
def occurrences2letters(sequence):
dico = {}
for i in range(len(sequence)-1):
key = sequence[i]+sequence[i+1]
dico[key] = dico.get(key,0) + 1
return dico
def printDico(dico):
for key in dico:
print("Key : "+str(key)+" - Value : "+str(dico[key]))
spam = "ACCTAGCCATGTAGAATCGCCTAGGCTTTAGCTAGCTCTAGCTAGCTG"
dico = occurrences2letters(spam)
printDico(dico)
输出:
Key : AC - Value : 1
Key : CC - Value : 3
Key : CT - Value : 8
... some output left out for brevity
Key : CG - Value : 1
Key : GG - Value : 1
Key : TT - Value : 2
您的occurrences2letters()
返回一个字典,您首先需要调用它,将字符串作为参数传递,然后调用printDico()
,将第一个函数的字典作为参数传递。
请注意,有更好的方法,例如使用collections.Counter
,这是一种遍历键,字典的值对等的更多Python方式。
import collections
import more_itertools # third-party library,instaled from pypi
spam = "ACCTAGCCATGTAGAATCGCCTAGGCTTTAGCTAGCTCTAGCTAGCTG"
for key,value in collections.Counter(more_itertools.windowed(spam,2)).items():
print(f'Key: {"".join(key)} - Value: {value}')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。