pythondict長度
我們以往的經驗,生成對比信息的字典代碼如下:
def getCurrentCompareMessageDict0(dict0, dict1):
'''未被優化的獲取當前對比信息字典'''
dlist0=list(dict0.keys())
dlist1=list(dict1.keys())
dict2={}
for i in range(len(dlist1)):
if dlist1[i] not in dlist0:
key=dlist1[i]
value=[0, dict1[dlist1[i]]]
dict2[key]=value
else:
if dict1[dlist1[i]]/100.0 != dict0[dlist1[i]]:
key=dlist1[i]
value=[dict0[dlist1[i]], dict1[dlist1[i]]]
dict2[key]=value
return dict2
即,先構建兩個dict的key列表。
然後,以key列表的長度為上限,進行for循環,採用DICT[KEY]的方式來進行列表數據的篩選。
這個方法的運行是超級慢的。
2. Python,如何使用循環或字典,統計數組中相同長度字元串的數量
用字典更方便
3. Python如何計算序列長度
根據你之前的問題,假定你的數據符合這種格式:
>SeqName1
Seq1
>SeqName2
Seq2
...
這里不要求Seq1隻佔一行(即允許其中有換行符出現)。假如Seq總是只佔一行的話,其實就是奇數行是名字,偶數行是序列本體而已,讀取不要太簡單……
以下是簡單的實現。考慮到文件可能很大,使用迭代來逐個讀入數據。文件較小的情況可以使用列表表達式直接實現- -。
遍歷文件時的流程:
如當前行以'>'開始,將其存為k(序列名稱),直到發現下一個序列名稱為止的所有行,填入v(序列)。再次發現'>'開始的行時,將(k, v)存入字典,並將v清空。此外的是實現細節。注釋之後太啰嗦了,對哪裡有疑問請追問。
fileFa=open("SEQ.FASTA","r")
dic,k,v={},'',[]
foriinfileFa:
ifi.startswith('>'):
dic[k]=v
k=i[1:-1]
v=[]
else:
v.append(i)
dic[k]=v
dic.pop('')
print"%ssequencesintotal"%len(dic)
for(k,v)indic.items():
print("SEQUENCE:%s LENGTH:%s"%(k,sum(map(len,v))))
使用你上一問題提供的4個序列,輸出如下:
4sequencesintotal
SEQUENCE:qwe56_44514
LENGTH:98
SEQUENCE:qwe56_44606
LENGTH:82
SEQUENCE:qwe56_44424
LENGTH:43
SEQUENCE:qwe56_869
LENGTH:39
4. python,,dict = {'Name': 'Zara', 'Age': 7}; print "Length : %d" % len (dict),為啥要有%
如圖,如果你只是 print "%d",那列印的就是 "百分號d"
你要用綠色的那個告訴print,前面那個只是馬甲,最後帶上本尊
5. python的元組,列表,字典有沒有長度的限制
目前python這些列表,字典和元祖是沒有長度限制的。但是他們會受到計算機內存的限制,發生crash。
6. python 字典 最多能有多少key
很舊的版本好像的50w,現在已經沒有限制了,只要內存不報錯,多少都沒問題。
7. python的dict操作復雜度有標准嗎
字典(dict)
下列字典的平均情況基於以下假設:
1. 對象的散列函數足夠擼棒(robust),不會發生沖突。
2. 字典的鍵是從所有可能的鍵的集合中隨機選擇的。
小竅門:只使用字元串作為字典的鍵。這么做雖然不會影響演算法的時間復雜度,但會對常數項產生顯著的影響,這決定了你的一段程序能多快跑完。
操作平均情況最壞情況復制[注2]O(n)O(n)取元素O(1)O(n)更改元素[注1]O(1)O(n)刪除元素O(1)O(n)遍歷[注2]O(n)O(n)
註:
[1] = These operations rely on the 「Amortized」 part of 「Amortized Worst Case」. Indivial actions may take surprisingly long, depending on the history of the container.
[2] = For these operations, the worst case n is the maximum size the container ever achieved, rather than just the current size. For example, if N objects are added to a dictionary, then N-1 are deleted, the dictionary will still be sized for N objects (at least) until another insertion is made.