
patt = re.compile("\w+")
def makeIndex(filename):
index = {}
with open(filename) as handle:
for i, ln in enumerate(handle):
for word in patt.findall(ln):
index.setdefault(word, []).append(i+1)
return index
def printIndex(index):
for word, lst in index.items():
print "%s: %s" % (
word, ", ".join(map(str, lst))
)
def indexQuery(index, *args):
found = None
for word in args:
got = index.get(word, [])
if not got:
return None
if not found:
found = set(got)
else:
found &= set(got)
if not found:
return None
return list(found)
index = makeIndex("baiduqa.py")
printIndex(index)
print indexQuery(index, "in", "enumerate")
1、方法一: 利用数组自身的特性 a.index(target), 其中a是目标list,target是需要的下标对应的值。代码如下:
可知索引为2。但是如果a中有多个76元素,这种方法仅仅能获取都第一个匹配的value的下标索引。
2、方法二:利用enumerate函数。
代码如下:
运行结果:
扩展资料:
python通过索引的 *** 作(Python包含6种内建序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象):
1、索引:
负数索引与正数索引之间存在一个规律: 当正数索引+负数索引的绝对值=元素的个数,它们所指的是同一个元素。
2、分片:
分片用于截取某个范围内的元素,通过:来指定起始区间(左闭右开区间,包含左侧索引值对应的元素,但不包含右测索引值对应的元素)。
分片包括起始索引对应的元素,但不包括终止索引对应的元素,索引为正值时可以发生越界但只会取到最后一个元素。如果索引值为负值,则表示从最右边元素开始,此时需避免索引越界。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)