Kezdőoldal » Számítástechnika » Programozás » Pythonban, egy stringben...

Pythonban, egy stringben melyik a helyettesítő karakter?

Figyelt kérdés

Mert Accessben tudom,hogy a*, ami több karaktert is helyettesít, így ott lekérdezésnél ki lehet listázni például az "A" betűvel kezdődő neveket. De Pythonban a *nem akart működni. Ti tudjátok azt, hogy melyik ez a helyettesítő karakter?

Ui: A feladat az volt, hogy eldöntsük, hogy egy listában van-e "E"-vel kezdődő név.


2020. nov. 12. 11:24
 1/6 anonim ***** válasza:
77%
Szerintem ezt nem így kell megoldani. Én a string első karakterét vizsgálnám csak.
2020. nov. 12. 11:51
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
87%

Ahhoz hogy megnézd hogy E-vel kezdodik-e nem kell helyettesíteni semmit.. csak nézd meg az első karakterét:

>>> mystring = "hello"

>>> print(mystring[0])

h


Persze ha nagyon akarsz "helyettesíteni" akkor használhatsz RegEx-et, de ez ágyúval verébre és valószínűleg lassabb is lesz:

[link]


Regex-ben a bármi-t egy pont jelöli.

A valamiből bármenynit pedig a csillag.

Tehát a bármiből bármennyit a .*

2020. nov. 12. 11:52
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
41%
Szerintem ezt a legérdemesebb regexszel megoldani, nyelvtől függetlenül, regexet tudod vinni magaddal akkor is ha a tanulónyelvet már rég elfelejtetted. De ebben a konkrét esetben persze működne az is amit az első válaszoló írt, akkor bonyolódik a dolog ha erre építve azt kérdezi, hogy tartalmaz-e "A" karaktert - persze végig lehet iterálni a karaktereken kézzel is, de minek szivasd magad amikor elég egy "*a*" is.
2020. nov. 12. 11:57
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Köszönöm szépen a válaszokat!
2020. nov. 12. 12:01
 5/6 anonim ***** válasza:

Ahogy a 3. válaszoló javasolja, a probléma komplexitásához kell választani a megoldást. pl. kell-e arra számítani, hogy esetleg lesznek-e kisbetűvel írt nevek? ilyesmi


l = ['Elemér', 'Gábor', 'József', 'Emese', 'Zoltán', 'eduárd']


l_filtered = [x for x in l if x[0] == 'E'] # Case sensitive

l_filtered = [x for x in l if re.match('^E', x)] # Regular expression - case sensitive

l_filtered = [x for x in l if re.match('^E', x, re.IGNORECASE)] # Regexp - case insensitive

2020. nov. 12. 13:42
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

Erre - mind a lista elemeinek "végigmenésének", mind az adott elem ellenőrzésének - több módja van.


Készítettem egy példát, melyben mindegyikre mutatok egy-egy példát:

[link]

2020. nov. 12. 16:02
Hasznos számodra ez a válasz?

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!