Python - Ez hogy működhet?
Probléma: szótárból kulcs-érték párt törölni anélkül, hogy a memóriából törölném.
Kód:
def foobar(szotar, kulcs):
(tab)return {szotar[i]: i for i in szotar if i != kulcs}
Ez hogy lehet, hogy működik? Hogy lehet ott for meg if?
Ez mind szép és jó, de engem a dolog szintaktikája érdekelne. Mióta létezik ilyen for és ilyen if a Pythonban?
Hogyan írhatóak egy másik utasítás mögé? Van még más helyzet is, amikor ilyen technikát lehet alkalmazni? Van ennek valami neve is?
Nincs mit.
Küldök pár példát, amiket én csináltam gyakorlásképpen. Ha kipróbálod, elemezgeted rájössz mire jó a comprehension.
## Task 5
first_five_squares = { x*x for x in {1,2,3,4,5} }
## Task 6
first_five_pows_two = { 2**x for x in {0,1,2,3,4} }
## Task 9
base = 10
digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
three_digits_set = {x*base**2+y*base+z for x in digits for y in digits for z in digits}
## Task 10
S = {1, 2, 3, 4}
T = {3, 4, 5, 6}
S_intersect_T = {x for x in S for y in T if x==y}
## Task 13
cartesian_product = [[x, y] for x in {'A','B','C'} for y in {1,2,3}] # use form: [ ... {'A','B','C'} ... {1,2,3} ... ]
## Task 14
S = {-4, -2, 1, 2, 5, 0}
zero_sum_list = [(i,j,k) for i in S for j in S for k in S if i+j+k==0]
## Task 15
exclude_zero_list = [(i,j,k) for i in S for j in S for k in S if i+j+k==0 if not(i==0 and j==0 and k==0)]
## Task 16
first_of_tuples_list = [(i,j,k) for i in S for j in S for k in S if i+j+k==0 if not(i==0 and j==0 and k==0)][0]
## Task 30
def list2dict(L, keylist): return { keylist[k]:L[k] for k in range(len(L)) }
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!