❶ 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])