Πώς να συγχωνεύσει συνεχόμενα γράμματα και συνεχόμενους αριθμούς από μια σειρά σε μια λίστα separetely;

ψήφοι
-3

Πείτε Έχω την ακόλουθη συμβολοσειρά:

    string1 = 'Twenty 20 Twelve 12'

Θα ήθελα να το μετατρέψει σε μια λίστα που θα κρατήσει λέξεις όπως χορδές σε διαφορετικά στοιχεία και αριθμούς σε ένα άλλο (όπως ακέραιοι):

    list1 = ['Twenty', 20, 'Twelve', 12]

τρέχοντα κωδικό μου φαίνεται είναι:

    list1 = [y for y in string1.replace(' ','')]

και το αποτέλεσμα εκτυπώνει όπως:

    ['T','w','e','n','t','y','2','0','T','w','e','l','v','e','1','2']

Πώς θα είμαι σε θέση να γράψω ένα κώδικα για να κρατήσει τα λόγια σε χωριστές εισόδους, και να μετατρέψει τους αριθμούς στο εσωτερικό του string σε ακέραιους αριθμούς στη λίστα; Είμαι αρχάριος στον προγραμματισμό ο οποίος αυτή τη στιγμή η εκμάθηση Python παράλληλα με C.

Δημοσιεύθηκε 08/11/2018 στις 00:08
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
2

Κοιτάξτε στην .split()λειτουργία.

Παίρνει τη μορφή

str.split(sep=None, maxsplit=-1)

έτσι θέλετε τον κωδικό σας για να μοιάσει με αυτό για να το σπάσει χώρια.

string1 = 'Twenty 20 Twelve 12'
string1.split()
#['Twenty', '20', 'Twelve', '12']

Για να μετατρέψετε τους αριθμούς σε ακέραιους αριθμούς, απλά ελέγξτε για .isdigit()

[int(i) if i.isdigit() else i for i in string1.split()]
#['Twenty', 20, 'Twelve', 12]

αν δεν είστε εξοικειωμένοι με λίστα Η κατανόηση , αυτό είναι ανάλογο με

values = []
for i in string1.split():
    if i.isdigit():
        values.append(int(i))
    else:
        values.append(i)

values
#['Twenty', 20, 'Twelve', 12]
Απαντήθηκε 08/11/2018 στις 00:11
πηγή χρήστη

ψήφοι
0

Θα πρέπει πραγματικά να το google ....

αλλά μπορείτε να χρησιμοποιήσετε split

string1 = 'Twenty 20 Twelve 12'
list1=string1.split(' ')
Απαντήθηκε 08/11/2018 στις 00:11
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more