[算法和数据结构入门][Day3]用最少的代码行数实现python 直接替换列表中的元素几种方法


查找重复字符串的个数(不区分大小写)
测试数据:
abcD1 --> 0
aabBcde --> 2
indivisibility --> 1

法一:

def duplicate_count(text):
    str =  text.lower()   
    if text.isalnum() is True:   
        WordCount = {}
        for num in str:
            if num in WordCount:
                WordCount[num] += 1
            else:
                WordCount[num] = 1
        print(text,'-->',len([i for i in WordCount if WordCount[i] >1]))    
    else:
        print(text,"\nError:Text contains something other letters and numbers")       
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")

在这里插入图片描述

法二:

def duplicate_count(text):  
    if text.isalnum() is True:   
        print(text,'-->',len(set(c for c in text.lower() if text.lower().count(c)>1)))    
    else:
        print(text,"\nError:Text contains something other letters and numbers")       
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")

在这里插入图片描述

法三:

def duplicate_count(text):
    if text.isalnum() is True:
        word_count = {}
        text_lower = text.lower()
        for i in text_lower:
            if text_lower.count(i) > 1:
                word_count[i] = text_lower.count(i)
        print(text,"-->",len(word_count))
    else:
        print(text,"\nError:Text contains something other  numbers and letters")
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")

在这里插入图片描述

法四:

import pandas as pd 
def duplicate_count(text):
    list = []
    for c in text:
        list.append(c.lower())
    df = pd.DataFrame(list,columns = ['1'])
    
    count = 0
    for i in df.groupby('1').size():
        if (i > 1):
            count += 1
    print(count)
        
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")

在这里插入图片描述

法五:

def duplicate_count(text):
    text_set = set()
    [text_set.add(s) for s in text.upper() if text.upper().count(s) > 1]
    return len(text_set)
print(duplicate_count('abcde'))
print(duplicate_count('aabBcde'))
print(duplicate_count('indivisibility'))

在这里插入图片描述

法六:

'''
dict.setdefault()方法接收两个参数,
第一个参数是健的名称,第二个参数是默认值。
假如字典中不存在给定的键,则返回参数中提供
的默认值;反之,则返回字典中保存的值
'''
from collections import defaultdict
def duplicate_count(text):    
    WordCount = {}    
    for num in text.lower():
        WordCount.setdefault(num, 0)
        WordCount[num] += 1       
    print(text,'-->',len([i for i in WordCount if WordCount[i] >1]))             
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")

在这里插入图片描述

发布了42 篇原创文章 · 获赞 28 · 访问量 4961

猜你喜欢

转载自blog.csdn.net/KaelCui/article/details/105329259
今日推荐