Come trovare il numero totale di duplicati in una stringa? , ad esempio, se fosse j= [1,1,1,2,2,2]
, si troverebbero duplicati 4
? Sono stato in grado di trovare il conteggio che mostra quante volte ogni singolo numero si è verificato.Contare i numeri interi in Python
6
A
risposta
17
>>> j= [1,1,1,2,2,2]
>>> len(j) - len(set(j))
4
e btw, j
è una lista e non una stringa, anche se per lo scopo di questo esercizio, non ha molta importanza.
7
Sembra esserci già una risposta popolare, ma se si desidera mantenere anche i singoli duplicati, il nuovo oggetto di raccolta Counter()
in Python 2.7 è perfetto per questo.
>>> from collections import Counter
>>> j = [1,1,1,2,2,2]
>>> Counter(j)
Counter({1: 3, 2: 3})
>>> sum([i - 1 for i in c.values() if i > 1])
4
>>> {k: v - 1 for k, v in c.items()} # individual dupes
{1: 2, 2: 2}
Problemi correlati
- 1. Dividere i numeri interi
- 2. Contare il numero di numeri interi in una stringa
- 3. Unisci due numeri interi in Python
- 4. Passare elenchi di numeri interi a python
- 5. Numeri romani ai numeri interi
- 6. Tipi interi da utilizzare per i numeri interi Core
- 7. Prevenire i cast automatici con numeri interi
- 8. Java ArrayList per i numeri interi
- 9. Come convertire stringhe in numeri interi in Python?
- 10. Come dire a Python di convertire numeri interi in parole
- 11. somma di stringa e numeri interi nella lista in python
- 12. SHA256 preferisce numeri interi?
- 13. Come vengono convertiti i numeri interi in byte in Java?
- 14. sommano in modo ricorsivo i numeri interi in un array
- 15. sequenza tutti i numeri interi tra due vettori in R
- 16. Determinazione di numeri pari/dispari (numeri interi)?
- 17. Python panda: output dataframe a csv con numeri interi
- 18. Confezionamento efficiente di byte in numeri interi?
- 19. Conversione di stringhe contenenti più numeri in numeri interi
- 20. Stampa di numeri interi con {#} in C#?
- 21. ordinamento numeri interi veloci in haskell
- 22. Cosa significano i numeri che iniziano con 0 in python?
- 23. Numeri interi a larghezza fissa in C++
- 24. Come convertire i numeri delle stringhe in numeri interi in un elenco?
- 25. Jackson JSON converte numeri interi in stringhe
- 26. numeri interi di tipo in ocaml
- 27. In R è meglio usare integer64, numerico o carattere per numeri interi di numeri interi grandi?
- 28. Come leggere i numeri in python dal file csv?
- 29. Convertire i numeri in gradi nell'elenco python
- 30. Javascript: toString (36) per i numeri interi grandi
alcuni suggerimenti/osservazioni: Bisogna supporre che 'c = Counter (j)' viene eseguito da qualche parte. Con la tua somma, hai bisogno di Python 2.7 quindi puoi perdere '[]'. In secondo luogo, la clausola 'if' è ridondante. In terzo luogo, non ha senso costruire la lista 'c.values ()'. Risultato: 'sum (i - 1 per i in c.itervalues ())' o dopo qualche algebra, prova 'sum (c.itervalues ()) - len (c)'. Prova ad aggiungere un non duplicato, ad es. 3 all'ingresso. Verifica se il tuo dizionario dei singoli duplicati è davvero quello che intendi. HTH. –
OK ... In primo luogo, dimmi come 'i> 1' è" ridondante "? Ho ** bisogno ** di impedire 'i <0' nel caso in cui gli interi negativi dovessero mai entrare nel ditt. Quindi il confronto avviene a prescindere. Ora considera una lista di elementi 1M, dove 999.000 sono '0' e poi dimmi che non dovrei andare avanti e impedire che' 0' aggiunga anche alla lista. "Dopo un po 'di algebra" sembra che tu mi stia dicendo che ho bisogno di impararlo, ma come ho appena detto mi piacerebbe assicurarmi che '-1000000' non appartenga alla dict, nel caso qualcosa di diverso da' Counter () 'lo modifica. – jonwd7
In secondo luogo, il mio uso di 'Counter()' non richiede 2.7 di sorta poiché ho incluso un collegamento al backport. (Uso una comprensione del ditt ma può essere modificata molto rapidamente). Quindi potrei o non riuscire a "perdere il' [] '" ... Ma cosa importa *? In terzo luogo, 'itervalues' /' iteritems' era inutile per questo semplice esempio e più difficile da digitare, quindi perdonami. E infine, non ho proprio idea di cosa intendi per un non-dupe 3 ... Stamperebbe '..., 3: 0}' e quello potrebbe essere o non essere esattamente ciò che l'OP * et al * voglio accadere in quella situazione. 'i> 0' allora? – jonwd7