La eliminación de duplicados de las cadenas individuales en una lista

OLADE ः urb:

Estoy intentando escribir un programa Python que si se les da una lista de cadenas, se eliminarán caracteres duplicados de las cadenas individuales de la lista. Mi trabajo hasta ahora es:

#program: removeduplicates.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-lst", nargs='+', type=str, required=True)
xyz = parser.parse_args()
duplist = xyz.lst

def duplicate_destoryer(duplist):
    finallist = []
    for word in duplist:
        x = set()
        list = []
        for ch in word:
            if ch not in x:
                set.add(ch)
                list.append(ch)
        finallist.append(list)

    return finallist


if __name__ == "__main__":
    print(duplicate_destoryer(duplist))

En mi entrada de comando de la línea I

python removeduplicates.py -lst aarrtt ddwwtt

y mi salida deseada es (no importa si en la lista de soportes o, simplemente, en escrito):

art dwt

El código que he escrito tiene sentido para mí, lógicamente, pero aparece el error descriptor 'add' para 'conjunto' objetos no se aplica a un objeto 'str' que sea justo y todos, excepto como lo hago más investigación Siento como si seguir viniendo a través de más y más ejemplos de código donde set.add () está siendo utilizado con objetos de cadena.

Me podrían momento alguien en la dirección correcta o decirme lo que estoy haciendo mal aquí?

Austin:

Usted es muy, muy cerca. Sólo tiene que utilizar lo siguiente:

x.add(ch)

en vez de:

set.add(ch)

Eso sería buscar una lista de listas como salida en lugar de una lista de cadenas que se pueden esperar. Para corregir que se puede hacer:

finallist.append(''.join(list))

en vez de:

finallist.append(list)

Tenga en cuenta que no se debe utilizar listpara el nombre de la variable. Es es un Python incorporada.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=392064&siteId=1
Recomendado
Clasificación