python列表里查询某一个值出现的所有位置
列表里查询某一个值出现的所有位置 怎么实现呢?求帮助 自己用个for循环:>>> lst =
>>> result = []
>>> for i in range(len(lst)):
if lst == 3:
result.append(i)
>>> result
冬雪雪冬 发表于 2018-11-16 11:06
自己用个for循环:
您好,
我的时文本的 希望您解答下,我实在有点困惑 谢谢 if判断的字符串要用引号括起来 本帖最后由 喜欢吃菠菜 于 2018-11-16 22:12 编辑
Amgalang 发表于 2018-11-16 15:31
您好,
我的时文本的 希望您解答下,我实在有点困惑 谢谢
l=
def GetPosition(key,ilist):
return [(idx,item) for (idx,item) in enumerate(ilist) if item==key]
print(GetPosition(3,l))
结果:
你如果要查找文本,把l换成文本的列表,key参数输入文本就可以 喜欢吃菠菜 发表于 2018-11-16 22:08
结果:
你如果要查找文本,把l换成文本的列表,key参数输入文本就可以
您好 我这个新手还是有点不懂,您看看 图,MINU 是 我想要找的单词,我希望能找到这个单词在文件里出现的所有位置。谢谢帮助 本帖最后由 喜欢吃菠菜 于 2018-11-19 13:37 编辑
Amgalang 发表于 2018-11-19 09:17
您好 我这个新手还是有点不懂,您看看 图,MINU 是 我想要找的单词,我希望能找到这个单词在文件里出 ...
如果是文件,就要进行文件操作。
参考一下,把文件名换成你的文件的路径,这个代码只找一行中的第一个匹配的单词,如果一行有多个,需要改进。
def find_word_pos(filename,word):
res=[]
with open(filename) as f:
lines=f.readlines()
linenum=0
for line in lines:
linenum+=1
s=line.lower()
pos=s.find(word)
if pos!=-1:
res.append()
return res
if __name__=='__main__':
txtfilename=r'c:\temp\10+.txt'
word='minu'
word_pos=find_word_pos(txtfilename,word)
if word_pos:
print('找到单词"%s"在文件的位置:' % word)
for each in word_pos:
print('第{0}行位置{0}开始'.format(each))
else:
print('未找到单词“%s%"' % word) Amgalang 发表于 2018-11-19 09:17
您好 我这个新手还是有点不懂,您看看 图,MINU 是 我想要找的单词,我希望能找到这个单词在文件里出 ...
这是可以查同一行,出现多个要查找的单词的代码:
def find_word_pos(filename,word):
import re
res=[]
with open(filename) as f:
lines=f.readlines()
linenum=0
for line in lines:
linenum+=1
pat=re.compile(word, re.RegexFlag.I)
pos=pat.finditer(line)
for each in pos:
res.append(])
return res
if __name__=='__main__':
txtfilename=r'c:\temp\10+.txt'
word='minu'
word_pos=find_word_pos(txtfilename,word)
if word_pos:
print('找到单词"%s"在文件的位置:' % word)
for each in word_pos:
print('第{0}行位置{0}开始'.format(each))
else:
print('未找到单词“%s%"' % word) 喜欢吃菠菜 发表于 2018-11-19 14:01
这是可以查同一行,出现多个要查找的单词的代码:
谢谢您,不过还是没太懂,我自己做了一个语料库,想在这个txt里 找到一些高频单词的位置,比如,“BIG” 这个单词 在我的txt中[ 3,7,10,19,35,66]第三处,7处....这样的展现 找到其 出现的位置,您看,能实现吗? Amgalang 发表于 2018-11-19 15:30
谢谢您,不过还是没太懂,我自己做了一个语料库,想在这个txt里 找到一些高频单词的位置,比如,“BIG”...
你试过运行我这个代码了吗?
如果是位置,应该基本就可以了啊
你要的是位置还是统计单词出现的次数? 喜欢吃菠菜 发表于 2018-11-19 15:54
你试过运行我这个代码了吗?
如果是位置,应该基本就可以了啊
你要的是位置还是统计单词出现的次数?
我要的是 一个单词出现的所有位置 哈哈,我试着让代码跑跑 喜欢吃菠菜 发表于 2018-11-19 14:01
这是可以查同一行,出现多个要查找的单词的代码:
您好,真心感谢您,您的代码 解决了我的问题,不过来了个新的问题,
就是 现在代码跑完后 也在出现 比如,我要找到 单词 ‘SKY’代码跑完后 也出现了 'TTSky‘,或者是 ‘SKYOO',但是 我就想要 独立的’SKY' 不要某些单词中的 ,或者以它开头的,就要‘SKY'没有其他成分的,您看能实现吗?是不是要把我的文件 先都改为字符串呢?希望指点。谢谢 本帖最后由 喜欢吃菠菜 于 2018-11-22 21:07 编辑
Amgalang 发表于 2018-11-22 19:35
您好,真心感谢您,您的代码 解决了我的问题,不过来了个新的问题,
就是 现在代码跑完后 也在出现 比如 ...
def find_word_pos1(filename,word):
import re
res=[]
with open(filename) as f:
lines=f.readlines()
linenum=0
for line in lines:
linenum+=1
pat=re.compile(r'\b'+word+r'\b', re.RegexFlag.I)
pos=pat.finditer(line)
for each in pos:
res.append(])
return res
if __name__=='__main__':
txtfilename=r'c:\temp\10+.txt'
word='minu'
word_pos=find_word_pos1(txtfilename,word)
if word_pos:
print(f'找到单词"{word}"在文件的位置:')
for each in word_pos:
print(f'第{each}行位置{each}开始')
else:
print(f'未找到单词“{word}"') 喜欢吃菠菜 发表于 2018-11-22 20:53
哇,真心谢谢你,好像跟您 学习python 谢谢。{:7_113:} Amgalang 发表于 2018-11-22 21:14
哇,真心谢谢你,好像跟您 学习python 谢谢。
互相学习 您好,再请教个问题,
text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])
我用同样的方式在我的文件里查询了单词“NI”,然而图上也出现了单词中间含有NI的词怎样把这个问题解决呢?我需要 就”NI“单词,不要词中间的带有 NI 的,求解答,万分感谢
页:
[1]