PYTHON:如何在检查列表元素是否在字符串中之后将其从字符串中移除

2024-03-28 12:56:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个字符串(单词)列表和一个非间隔字符串,我应该用它们做的是:

  1. 检查列表中的字符串是否在非间隔字符串中
  2. 如果是,请删除找到的单词
  3. 列出一个按字典顺序排列的所有单词的列表
  4. 给出发现最多的单词,如果有两个单词出现的次数相同,只需按词典顺序给出第一个单词
  5. 给出一组未找到的单词

示例:

list=['cat','dog','mouse']

string='mousecatmousemousecatcat'

答案应该是:

(['mouse','cat'],'cat')列表必须变成['dog']

示例:

  • list=['ala','cena','elica','nave','luce','lana','vela']

  • string='lucenavelanavelanaveelica'

答案应该是:

(['luce','nave','lana','vela','elica'],'nave')列表变为['ala','cena']

我现在在这一点上:

def函数(lista,testo):

conto=0
val=''
presenti=list(filter(lambda x: x in testo, lista))
non_presenti= (set(lista)-set(presenti))
if non_presenti >0:
    return tuple(non_presenti)
else:
    return list(non_presenti)
#tuple(filter(lambda x: x not in testo, lista))


for i in range(1,len(lista)):
    a=testo.count(lista[i-1])
    if conto <= a:
        conto=a
        val=lista[i-1]
print(type(presenti), type(val), type(non_presenti))

return presenti, val,non_presenti

这是最后的代码,对不起,如果我没有解释好自己,我仍然是这个论坛的新手…:

定义es3(lista,testo):

dizionario_iniziale={}
a=0
b=0
c=0
ripetute=0
while a !=len(testo):
    a= b + len(lista[c])
    if testo[b:a]== lista[c]:
        b=a
        dizionario_iniziale[lista[c]]= dizionario_iniziale.get(lista[c],0)+1
        c=0
    else:
        c +=1    

for i in dizionario_iniziale:
    if ripetute < dizionario_iniziale[i]:
        ripetute= dizionario_iniziale[i]
        parola=i
        meno_ripetuta=i
    elif ripetute==dizionario_iniziale[i]:
        if parola<i:
            meno_ripetuta=parola
        else:
            meno_ripetuta=i

chiavi=dizionario_iniziale.keys()
for i in chiavi:
    lista.remove(i)
return list(dizionario_iniziale.keys()), meno_ripetuta

Tags: 字符串in列表returnifval单词list
1条回答
网友
1楼 · 发布于 2024-03-28 12:56:03
list1=['cat','dog','mouse']
string='mousecatmousemousecatcat'

def some_func(input_list, string):
    occurance_list = []
    most_counted = ""
    num = 0
    for i in input_list:
        if string.count(i) > num:
            most_counted = i
            num = string.count(i)
        if string.count(i) > 0:
            occurance_list.append(i)
    not_occured  = list(set(input_list) - set(occurance_list))
    return occurance_list, most_counted, not_occured

print(some_func(list1, string))


list2=['ala','cena','elica','nave','luce','lana','vela']

string='lucenavelanavelanaveelica'

print(some_func(list2, string))

输出:

>>>(['cat', 'mouse'], 'cat', ['dog'])
>>>(['cena', 'elica', 'nave', 'luce', 'lana', 'vela'], 'nave', ['ala'])

相关问题 更多 >