为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

DIEA 2021-11-16 14:24:32
我的问题是,如果我的列表是...,我如何在列表中找到具有相同字符数的字符串?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 = 3listNum(myList, x)
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

您的功能已关闭,因为您正在将列表索引与您尝试匹配的值进行比较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]


查看完整回答
反对 回复 2021-11-16
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

使用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'


查看完整回答
反对 回复 2021-11-16
?
三国纷争

TA贡献1804条经验 获得超7个赞

试试这个代码。


代码


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 res




myList = ["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'}


查看完整回答
反对 回复 2021-11-16
  • 3 回答
  • 0 关注
  • 398 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信