❶ python enumerate跟直接in有什麼區別
兩個區別很明顯:
https://docs.python.org/2/library/functions.html#enumerate
defenumerate(sequence,start=0):
n=start
foreleminsequence:
yieldn,elem
n+=1
首先看enumerate返回的是個iterator
in的話參考文檔:(下面摘錄)
https://docs.python.org/2.7/reference/expressions.html#in
http://python.usyiyi.cn/translate/python_278/reference/expressions.html#not-in (翻譯)
對於定義了__contains__()方法的用戶自定義類,xiny為真當且僅當y.__contains__(x)為真。
對於沒有定義__contains__()但定義__iter__()的用戶自定義類,xiny為真如果某個值z在迭代y時滿足x==z。如果迭代過程中拋出異常,就好像是in拋出那個異常一樣。
最後,嘗試舊式的迭代協議:如果一個類定義了__getitem__(),xiny為真當且僅當有一個非負的整數索引i使得x==y[i], 且更小的索引不會引發IndexError異常。(如果引發了其它異常,則像是in引發了該異常)。
notin操作符定義為取與in相反的真值。
❷ Python中字典的內建函數用法是什麼
字典內置函數&方法
Python字典包含了以下內置函數:
1 cmp(dict1, dict2)
比較兩個字典元素。
2 len(dict)
計算字典元素個數,即鍵的總數。
3 str(dict)
輸出字典可列印的字元串表示。
4 type(variable)
返回輸入的變數類型,如果變數是字典就返回字典類型。
❸ python對字典排序,代碼如下。
tag_sorted = sorted(tag_count.iteritems(),key = operator.itemgetter(1),reverse = True)
# tag_sorted是個列表
eg.
>>> adict = dict([(x, 10+x) for x in xrange(10)])
>>> adict
{0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19}
>>> sorted(adict.iteritems())
[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), (8, 18), (9, 19)]
>>>
對於列表是沒有.iteritems()方法的;後續代碼可以調整為:
for i,(k,v) in enumerate(tag_sorted):
print("%d %d %d"%(k,v,i))
❹ Python中關於字典的問題
importre
from__future__importprint_function
f=open(r'文件名')
worddict={}
fori,lineinenumerate(f):
words=re.findall(r'w+',line)
forwordinwords:
worddict.setdefault(word,set()).add(i+1)
forkey,valueinworddict.items():
print(key,end=":")
print(','.join(sorted(value)))
❺ 在python中怎麼把列表中的元素添加到字典中
1、首先打開python的編輯器。
❻ 如何按行枚舉 python enumerate
enumerate()說明
enumerate()是python的內置函數
enumerate在字典上是枚舉、列舉的意思
對於一個可迭代的(iterable)/可遍歷的對象(如列表、字元串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值
enumerate多用於在for循環中得到計數
例如對於一個seq,得到:
(0, seq[0]), (1, seq[1]), (2, seq[2])
1
1
enumerate()返回的是一個enumerate對象,例如:
enumerate()使用
如果對一個列表,既要遍歷索引又要遍歷元素時,首先可以這樣寫:
list1 = ["這", "是", "一個", "測試"]
for i in range (len(list1)):
print i ,list1[i]123123
上述方法有些累贅,利用enumerate()會更加直接和優美:
list1 = ["這", "是", "一個", "測試"]
for index, item in enumerate(list1):
print index, item
>>>
0 這
1 是
2 一個
3 測試1234567812345678
enumerate還可以接收第二個參數,用於指定索引起始值,如:
list1 = ["這", "是", "一個", "測試"]
for index, item in enumerate(list1, 1):
print index, item
>>>
1 這
2 是
3 一個
4 測試1234567812345678
補充
如果要統計文件的行數,可以這樣寫:
count = len(open(filepath, 'r').readlines())11
這種方法簡單,但是可能比較慢,當文件比較大時甚至不能工作。
可以利用enumerate():
count = -1
for index, line in enumerate(open(filepath,'r')):
count += 1
❼ python怎樣獲取字典中前十個
字典為mydict={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11}
#列印字典的所有鍵值
print(mydict.keys())
#列印字典的所有值
print(mydict.values())
#列印字典的前5個鍵值
print([i for i in mydict.keys()][:5])
#列印字典的前8個值
print([i for i in mydict.values()][:8])