Λύθηκε: μετονομάστε τα διπλότυπα στη λίστα python

Η μετονομασία των διπλότυπων σε μια λίστα μπορεί να είναι ένα δύσκολο πρόβλημα να επιλυθεί, επειδή απαιτεί να προσδιορίσετε τα διπλότυπα και στη συνέχεια να αποφασίσετε πώς να τα μετονομάσετε. Αυτό μπορεί να είναι ιδιαίτερα δύσκολο εάν η λίστα περιέχει πολλά στοιχεία ή εάν τα στοιχεία είναι πολύπλοκα αντικείμενα. Επιπλέον, η μετονομασία των διπλότυπων ενδέχεται να απαιτεί από εσάς να τροποποιήσετε άλλα μέρη του κώδικά σας που βασίζονται στα αρχικά ονόματα των στοιχείων, προκειμένου να συνεχίσουν να λειτουργούν σωστά.

def rename_duplicates(lst): 
    seen = set() 
    new_lst = [] 

    for item in lst: 
        if item not in seen: 
            seen.add(item) 
            new_lst.append(item) 
        else: 
            new_item = item + '_1'   # append a suffix to make it unique  

            while new_item in seen:   # increment the suffix until it's unique  
                suffix = int(new_item.split('_')[-1]) + 1   # get the last number and add one to it  
                new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix)

            seen.add(new_item)     # add the newly created item to the set of seen items  
            new_lst.append(new_item)     # append the newly created item to the list

    return new

_lst

# Αυτός ο κώδικας ορίζει μια συνάρτηση που ονομάζεται rename_duplicates που λαμβάνει μια λίστα ως όρισμα.
def rename_duplicates(lst):

# Στη συνέχεια δημιουργεί ένα κενό σύνολο που ονομάζεται see και μια κενή λίστα που ονομάζεται new_lst.
δει = σετ ()
new_lst = []

# Στη συνέχεια, επαναλαμβάνει τα στοιχεία της λίστας και ελέγχει εάν βρίσκονται ήδη στο σύνολο των εμφανισμένων στοιχείων.
για το στοιχείο στο lst:
εάν το στοιχείο δεν εμφανίζεται: # Εάν δεν είναι, το προσθέτει στο σύνολο των δεικτών και το προσαρτά στη νέα λίστα.
see.add(item)
new_lst.append(item) # Εάν είναι, δημιουργεί μια μοναδική έκδοση αυτού του στοιχείου προσθέτοντας ένα επίθημα (π.χ., '_1') στο όνομά του και ελέγχει εάν αυτό το νεοδημιουργημένο στοιχείο βρίσκεται ήδη στο σύνολο των εμφανισμένων στοιχείων.

else: # Αν ναι, αυξάνει το επίθημα μέχρι να βρει μια αχρησιμοποίητη έκδοση αυτού του ονόματος στοιχείου και προσθέτει αυτό το νεοδημιουργημένο στοιχείο τόσο στο σύνολο των εμφανισμένων στοιχείων όσο και στη νέα λίστα προτού επιστρέψει αυτή τη νέα λίστα στο τέλος της εκτέλεσής του.

new_item = στοιχείο + '_1'

ενώ το νέο_αντικείμενο εμφανίζεται: # προσαυξητικό επίθημα μέχρι μοναδικό

επίθημα = int(new_item.split('_')[-1]) + 1 # πάρτε τον τελευταίο αριθμό και προσθέστε έναν σε αυτόν

new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), επίθημα)

see.add(νέο

Λίστες σε Python

Οι λίστες στην Python είναι μια από τις πιο συχνά χρησιμοποιούμενες δομές δεδομένων. Χρησιμοποιούνται για την αποθήκευση μιας συλλογής στοιχείων, τα οποία μπορεί να είναι οποιουδήποτε τύπου, συμπεριλαμβανομένων άλλων λιστών. Οι λίστες είναι μεταβλητές, που σημαίνει ότι μπορούν να αλλάξουν αφού δημιουργηθούν. Υποστηρίζουν επίσης λειτουργίες όπως ευρετηρίαση, τεμαχισμός και συνένωση.

Για να δημιουργήσετε μια λίστα στην Python, χρησιμοποιείτε αγκύλες και διαχωρίζετε κάθε στοιχείο με κόμμα:

my_list = [1, 2, 3]

Μπορείτε να αποκτήσετε πρόσβαση σε μεμονωμένα στοιχεία στη λίστα χρησιμοποιώντας το ευρετήριό τους:
my_list[0] # επιστρέφει 1
my_list[1] # επιστρέφει 2
my_list[2] # επιστρέφει 3

Μπορείτε επίσης να χρησιμοποιήσετε αρνητικούς δείκτες για πρόσβαση σε στοιχεία από το τέλος της λίστας:

my_list[-1] # επιστρέφει 3 (το τελευταίο στοιχείο)

Μπορείτε να προσθέσετε στοιχεία σε μια λίστα χρησιμοποιώντας τη μέθοδο append():

my_list.append(4) # προσθέτει 4 στο τέλος της λίστας

Μπορείτε να αφαιρέσετε στοιχεία από μια λίστα χρησιμοποιώντας είτε τις μεθόδους remove() είτε pop():

my_list.remove(3) # αφαιρεί 3 από τη λίστα

Το my_list.pop(2) # αφαιρεί και επιστρέφει το 2 (το τρίτο στοιχείο) από τη λίστα

Μετονομάστε τα διπλότυπα στη λίστα στην Python

Η μετονομασία των διπλότυπων στη λίστα στην Python είναι μια συνηθισμένη εργασία όταν ασχολούμαστε με λίστες. Περιλαμβάνει την αντικατάσταση διπλών στοιχείων σε μια λίστα με μοναδικές τιμές. Αυτό μπορεί να γίνει χρησιμοποιώντας τη συνάρτηση set(), η οποία αφαιρεί όλα τα διπλά στοιχεία από μια λίστα και επιστρέφει μια νέα λίστα με μοναδικά μόνο στοιχεία. Η συνάρτηση set() μπορεί επίσης να χρησιμοποιηθεί για τη μετονομασία των διπλότυπων παρέχοντάς της μια αντιστοίχιση παλιών τιμών σε νέες τιμές. Για παράδειγμα, εάν έχετε μια λίστα αριθμών και θέλετε να αντικαταστήσετε όλα τα διπλότυπα με τα αντίστοιχα τετράγωνά τους, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:

# Δημιουργήστε ένα κενό λεξικό
χαρτογράφηση = {}

# Επαναλάβετε την αρχική λίστα
για το στοιχείο στη λίστα μου:
# Ελέγξτε εάν το στοιχείο υπάρχει ήδη στο λεξικό
εάν το στοιχείο δεν είναι στη χαρτογράφηση:
# Εάν όχι, προσθέστε το στο λεξικό και εκχωρήστε το τετράγωνό του ως τιμή
αντιστοίχιση[στοιχείο] = στοιχείο * στοιχείο

# Δημιουργήστε μια κενή λίστα αποτελεσμάτων
λίστα αποτελεσμάτων = []

# Επαναλάβετε ξανά την αρχική λίστα και αντικαταστήστε κάθε στοιχείο με το τετράγωνό του από το λεξικό για το i στη λίστα μου: result_list.append(mapping[i])

# Εκτύπωση αποτελεσμάτων εκτύπωσης (λίστα_αποτελεσμάτων)

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο