Kezdőoldal » Számítástechnika » Programozás » Pythonban hogyan lehet egy...

Pythonban hogyan lehet egy stringben zárójelben lévő számokat kiszedni és integerré alakítani?

Figyelt kérdés

Van 2 string: "Valami (98)" és "Valami (23)".

Szeretném vizsgálni, hogy a zárójelben lévő számok (jelen esetben 98 és 23) közül melyik a nagyobb. Ehhez hogyan tudom kivenni csak a számokat a stringből és intté alakítani?

A szó előttük megegyezik, a szó és a zárójel között szóköz is van, a számok viszont változóak, nem ismerem az értéküket, csak szeretnék rá assertelni, hogy egyik nagyobb, mint a másik.



2022. dec. 27. 14:36
1 2
 1/16 anonim ***** válasza:
54%
Van pár rá megoldási módszer: [link]
2022. dec. 27. 14:50
Hasznos számodra ez a válasz?
 2/16 anonim ***** válasza:
35%

import re

s = "Valami (98)"

int(re.findall(r'\((\d+)\)', s)[0])

2022. dec. 27. 15:00
Hasznos számodra ez a válasz?
 3/16 anonim ***** válasza:
Splitteled space alapján, majd az 1. elemből eltávolítod a zárójeleket, majd számmá castolod. Persze ez csak akkor működik, ha 100% mindig így van, ahogy a példában.
2022. dec. 27. 16:05
Hasznos számodra ez a válasz?
 4/16 anonim ***** válasza:
33%

Az alapján, amit leírták szerintem ez a legegyszerűbb:

s = "Valami (98)"

int(s[8:-1])

2022. dec. 27. 16:52
Hasznos számodra ez a válasz?
 5/16 anonim ***** válasza:

#4

Szerintem innen mindenki azt feltételezi, hogy a "valami" ebben az esetben nem a valami szót jelöli, hanem bármilyen string-et.

2022. dec. 27. 17:27
Hasznos számodra ez a válasz?
 6/16 A kérdező kommentje:
A "Valami" az mindig ugyanaz ebben az esetben, úgyhogy ez jó megoldásnak tűnik, köszönöm!
2022. dec. 27. 18:22
 7/16 anonim ***** válasza:
#5: Azt írja a kérdező: "a szó előttük megegyezik". Ha ez a szó nem a "valami", akkor értelemszerűen a 8-at át kell írni, de feltételezem ezt a kérdező is érti, még ha a megoldásra nem is jött rá maga.
2022. dec. 27. 18:22
Hasznos számodra ez a válasz?
 8/16 A kérdező kommentje:
Igen értem, köszi! Elég kezdő vagyok még, próbáltam utánanézni, de csak ilyen regexes megoldásokat láttam, elég bonyolultnak tűnt, gondoltam, hogy van egyszerűbb is.
2022. dec. 27. 18:30
 9/16 anonim ***** válasza:
51%

Ha nagyon egyszerűen szeretnéd megoldani akkor ez jó lehet:


a = "Valami (98)"

b = "Valami (23)"


c = a[8:10]

d = b[8:10]


for i in c, d:

if c > d:

print('A két szám közül nagyobb a ' + c + ' mint a ' + d)

break

else:

print('A két szám közül nagyobb a ' + d + ' mint a ' + c)

break

2022. dec. 29. 22:18
Hasznos számodra ez a válasz?
 10/16 anonim ***** válasza:
#9 vagyok, sajnos elfelejtettem hogy a gyakorin a szóközök nem jók, remélem a szóközök beillesztése már nem fog gondot okozni. :)
2022. dec. 29. 22:19
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!