如何在列表中找到在 Python 中具有相同值的元素?

我的问题是,如果我的列表是...,我如何在列表中找到具有相同字符数的字符串?


myList = ["Hello", "How","are", "you"]

我希望它返回值为 3 的字符串


上面列表中的示例...


["How","are","you"]

这是我试过的...


def listNum(myList, x):

    for i in range(len(myList)):

        if i == x:

            return(i)




myList = ["Hello", "How","are", "you"]

x = 3

listNum(myList, x)


DIEA
浏览 399回答 3
3回答

qq_花开花谢_0

您的功能已关闭,因为您正在将列表索引与您尝试匹配的值进行比较i == x。您想使用myList[i] == x. 但似乎您实际上想检查长度,所以len(myList[i]) == x.但是,我更喜欢迭代循环中的实际元素(或 Joran Beasley 在评论中指出的列表理解)。您还提到您想检查是否为特定长度的字符串,因此您还可以添加对对象类型的检查:def listNum(myList, x):     return [item for item in myList if type(item) is str and len(item) == x]

慕的地6264312

使用setdefault()方法。此解决方案应该为您提供映射到各自单词的所有单词长度的字典代码myList = ["Hello", "How","are", "you"]dict1 = {}for ele in myList:    key = len(ele)    dict1.setdefault(key, [])    dict1[key].append(ele)输出我想这是您想要实现的输出。>>> print(dict1){5: ['Hello'], 3: ['How', 'are', 'you']}您可以使用它来查询字典并获取与其字长相对应的单词。例如dict1[5]会返回'hello'

三国纷争

试试这个代码。代码def func_same_length(array,index):    res = [array[i] for i in range(0,len(array)) if len(array[index]) == len(array[i]) and i!=index]    return resmyList = ["Hello", "How", "are", "you"]resSet = set()for index in range(0,len(myList)):    res = func_same_length(myList,index)    for i in res:        resSet.add(i)print(resSet)输出{'How', 'are', 'you'}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python