如何找到列表中最长的那个字符串 背景及问题 代码 代码解释 例子 后话 背景及问题 有时候我们在做自然语言出来的时候,分词会分出很多
如何找到列表中最长的那个字符串
- 背景及问题
- 代码
- 代码解释
- 例子
- 后话
背景及问题
有时候我们在做自然语言出来的时候,分词会分出很多词法,如果这些词法构成一个列表,可能最长的那个才是你想要的,那么如何才能获取到最长的那个词呢?
我们知道numpy的len函数可以计算出每个字符串的长度,应用map把len函数映射到列表便可得到列表中每个字符串的长度值,然后利用argmax函数定位到最长的那个,获取其索引值,然后利用列表切片技术获取最长元素。
代码
def get_longest_element(item_list): #定义获取列表中最长元素的函数len_list=map(len,item_list) #计算list每个元素的长度
li=list(len_list) #实例化\
#print(li) #打出来观察
#print(np.argmax(li)) #标记最长元素的索引
return item_list[np.argmax(li)] #返回最长元素
代码解释
这个函数首先计算每个元素的长度,通过对比长度确定最长元素,然后定位最长元素的位置,最后返回最长元素。
例子
import numpy as np #导入数值计算扩展模块item_list=['奉贤区','塘外镇','紫苑小区41幢'] #设定list
len_list=map(len,item_list) #获取字符串长度构成新的list
li=list(len_list) #实例化\
print(li) #实例化
max_index=np.argmax(li) #获取最长元素的索引
print(item_list[np.argmax(li)]) #打印原列表中最长元素
后话
Python一些小技巧也需要不断积累,不积跬步无以至千里,无积小流无以成江海。