如何找到列表中最长的那个字符串

如何找到列表中最长的那个字符串

背景及问题

有时候我们在做自然语言出来的时候,分词会分出很多词法,如果这些词法构成一个列表,可能最长的那个才是你想要的,那么如何才能获取到最长的那个词呢?
我们知道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一些小技巧也需要不断积累,不积跬步无以至千里,无积小流无以成江海。

发布了45 篇原创文章 · 获赞 12 · 访问量 8689

猜你喜欢

转载自blog.csdn.net/zengbowengood/article/details/96425596
今日推荐