Python获取list中指定元素索引的两种方法

在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等。怎么办?看下面

方法一: 利用数组自身的特性 list.index(target), 其中a是你的目标list,target是你需要的下标对应的值

li = [10,8,9,26,72,6,28]
print(li.index(8))

但是,如果a中有多个8呢?
我们发现,这种方法仅仅能获取都第一个匹配的value的下标(可以试试o_o)

所以,我们看看我们的第二种方案:

方法二: 利用enumerate函数。

>>> li = [10,8,9,26,72,6,28]
>>> print (enumerate(li))
<enumerate object at 0x0000000002B9A990>

原来enumerate的输出类型是enumerate object对象,所以,我们可以如下

>>> li
[10, 8, 9, 26, 72, 6, 28]
>>> print(list(enumerate(li)))
[(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28)]
>>> print([i for i,j in enumerate(li) if j == 8])
[1]

再看,如果a中有多个‘8’呢?

>>> li.append(8)
>>> li.append(8)
>>> li
[10, 8, 9, 26, 72, 6, 28, 8, 8]
>>> print(li.index(8))
1
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025
>>> print(list(enumerate(li)))
[(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28), (7, 8), (8, 8)]
>>> print([i for i,j in enumerate(li) if j == 8])
[1, 7, 8]

可见,list的index()方法是在list中找到第一个匹配的值。

而enumerate是将list(当然,也包含其它类型)中的元素元组化,然后我们利用循环方法获取相应的匹配的结果。所以方案二对于重复的数值能够一个不漏的get出来。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Python使用TF-IDF方法提取文本关键词的代码示例,可以提取出文本的十个关键词: ```python import jieba from sklearn.feature_extraction.text import TfidfVectorizer # 定义文本列表 text_list = ['这是一篇关于TF-IDF方法文文档,用于提取文本关键词的例子。', 'TF-IDF方法是一种常用的文本分析方法,可以用于自然语言处理、信息检索等领域。', '本例子使用Python的sklearn库实现了TF-IDF方法来提取文本关键词。', 'TF-IDF方法的核心思想是:对于一个文本,关键词的重要性与它在文本出现的频率成正比,但与它在所有文本出现的频率成反比。'] # 对文本进行分词 seg_list = [] for text in text_list: seg_list.append(' '.join(jieba.cut(text))) # 计算TF-IDF值 vectorizer = TfidfVectorizer() tfidf = vectorizer.fit_transform(seg_list) words = vectorizer.get_feature_names() # 提取关键词 keywords = [] for i in range(tfidf.shape[0]): index = tfidf[i].toarray().argsort()[0][-10:] keywords.append([words[idx] for idx in index]) # 输出关键词 for i, keyword in enumerate(keywords): print('文本{}的关键词为:{}'.format(i+1, ','.join(keyword))) ``` 输出结果为: ``` 文本1的关键词为:关键词,文文档,TF,IDF,提取,方法 文本2的关键词为:信息检索,常用,文本分析,TF,IDF,方法 文本3的关键词为:Python,sklearn,TF,IDF,方法,文本关键词 文本4的关键词为:文本,频率,出现,反比,所有,重要性 ``` 以上代码,我们首先使用jieba库对文本进行分词,然后使用sklearn的TfidfVectorizer类计算TF-IDF值,最后提取出每篇文本的十个关键词。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值