python—降低列表中字符串和其他元素的python方式

python—降低列表中字符串和其他元素的python方式,python,Python,我想降低所有字符串并在inputList中找到重复项使用isinstance检查元素类型: def duplicate(inputList): inputList = [inputList for x in inputList if inputList[x] is str] print(inputList) if __name__=='__main__': duplicate([1,2,3,2,1,3,"Hello","HeLlo"]); 或: 如果要从列表中找出唯

我想降低所有字符串并在inputList中找到重复项

使用
isinstance
检查元素类型:

def duplicate(inputList):
    inputList = [inputList for x in inputList if inputList[x] is str]
    print(inputList)


if __name__=='__main__':
    duplicate([1,2,3,2,1,3,"Hello","HeLlo"]);
或:

如果要从列表中找出唯一的元素,可以使用集合:

[x.lower() if type(x) is str else x for x in lst]
# [1, 2, 3, 2, 1, 3, 'hello', 'hello']
或获取副本:

{x.lower() if type(x) is str else x for x in lst}
# {1, 2, 3, 'hello'}

你试过什么?不是代码编写服务。您所说的“查找重复项”是什么意思?您希望得到什么结果?结果应该是[1,2,3,“hello”]结果是原始列表中唯一的元素还是有重复的元素?应该
duplicate([1,2,3,1])==[1]
?这样的答案就是为什么我在过去2分钟内复制粘贴了四条“我们不是代码编写服务”的注释。。。因为无论OP投入了多少努力,人们都会回答。@PeterWood我最初没有看到“查找重复项”部分。我想他只是想知道如何降低字符串的大小写。看到了吗
{x.lower() if type(x) is str else x for x in lst}
# {1, 2, 3, 'hello'}
dupes = []
vals = set()

for x in lst:

    if isinstance(x, str):
        x = x.lower()

    if x in vals:
        dupes.append(x)
    else:
        vals.add(x)  

dupes
# [2, 1, 3, 'hello']