anun = "JoHn"
azganun = 'smith'
mard = 'john smith'05 List/String Methods; Ternary Operators; List Comprehensions
Արագածոտն, լուսանկարի հղումը, Հեղինակ՝ Ani Adigyozalyan
You real me out when you
string.cut()
(c) Radiohead
🎦 Տեսադասեր + լրացուցիչ
- Տեսություն 2025
- Տեսություն 2023 (ToDo)
- Գործնական 2025 (ToDo)
- Գործնական 2023 (ToDo)
- Որոշ տնայինների լուծումներ (ToDo)
Նշումներ։ Ստեղ կարող եք գրել թե profound-ից որ խնդիրների համար կուզեք տեսնել վիդեո լուծումներ, կամ կուզեիք մենք քննարկենք
📚 Նյութը
String methods լիքը ուրիշ մեթոդներ
մեծատառ / փոքրատառ
print(anun)
print(anun.lower())JoHn
john
print(anun)
print(anun.upper()) # uppercaseJoHn
JOHN
print(mard)
print(mard.title())john smith
John Smith
print(mard)
print(mard.capitalize())john smith
John smith
print(anun)
print(anun.swapcase())JoHn
jOhN
սկիզբ/վերջը ստուգել
a = 'panir.com'
b = 'panir hamov'print(a.startswith('panir')) # a[:5] == "panir"
# հեռացնել
print(a.removeprefix('panir'))
# փոխումա՞ թե չէ
print(a)
# a = a.removeprefix('panir')
# print(a)True
.com
panir.com
.com
print(a.endswith('.com'))
print(b.endswith('.com'))
# հեռացնել
print(a.removesuffix('.com'))True
False
panir
print(a.startswith(("www", "panir", "http")))
# ()-ն tuple ստեղծելու համար ա, դա հաջորդ
# դասին ենք անցնելուTrue
ստուգել ինչերից ա բաղկացած
tar_tiv = 'asdasdvAFASD122313'
xary = 'mynhtgfe12312$%$%@asda'
tarer = 'rfedsaasd'
tver = '12350911509'print(tar_tiv.isalnum()) # alphabetic, numeric
print(xary.isalnum())True
False
print(tarer.isalpha())
print(tver.isalpha())True
False
print(tver.isdigit())
print(tarer.isdigit())True
False
տեքստից ցուցակ, և հակառակը
a = 'Ողջույն բոլորին, բարևներ, պրիվեեեետ'list(a)a.split()['Ողջույն', 'բոլորին,', 'բարևներ,', 'պրիվեեեետ']
a.split(', ')['Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ']
a = "11 2 3 5 asd \
4 \
5"
a.split()['11', '2', '3', '5', 'asd', '4', '5']
Հիմա հակառակը
barer = ['Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ']str(barer)"['Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ']"
print(" ".join(barer))
print('Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ', sep=" ")Ողջույն բոլորին բարևներ պրիվեեեետ
Ողջույն բոլորին բարևներ պրիվեեեետ
", ".join(barer)'Ողջույն բոլորին, բարևներ, պրիվեեեետ'
"&&&".join(barer)'Ողջույն բոլորին&&&բարևներ&&&պրիվեեեետ'
հաշվել, գտնել, փոխել
s = 'abc bc a a aaa'print(s.count('a'))
print(s.count('bc'))6
2
print(s.find('bc')) # առաջին հանդիպածն ա վերադարձնում
print(s.index('bc'))1
1
print(s.find('d'))-1
print(s.index('d'))--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Input In [32], in <cell line: 1>() ----> 1 print(s.index('d')) ValueError: substring not found
Replace
s = 'բառև, եռբ ես գալու, ու՞ռ ես's.replace('ռ', 'ր')'բարև, երբ ես գալու, ու՞ր ես'
print(s)
s = s.replace('ռ', 'ր')
print(s)բառև, եռբ ես գալու, ու՞ռ ես
բարև, երբ ես գալու, ու՞ր ես
բացատազերծել
s = ' ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆաաա '
print(s.strip())
s = '-------- ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆ ---'
print(s.strip("-"))ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆաաա
ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆաաա
s = ' ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆաաա '
print(s.lstrip()) # left strip
print(s.rstrip())ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆաաա
ասդասդադւըյըտռտեռֆ տգտռ,,, ե, դգֆաաա
maqrac_s = ""
for i in s:
if i != "ա":
maqrac_s += i
print(maqrac_s) սդսդդւըյըտռտեռֆ տգտռ,,, ե, դգֆ
List methods
միավորում
mrger_1 = ['խնձոր', 'բանան']
mrger_1.append("sjadad")
print(mrger_1)
mrger_1.append(1,2,3)['խնձոր', 'բանան', 'sjadad']
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Input In [44], in <cell line: 7>() 3 mrger_1.append("sjadad") 5 print(mrger_1) ----> 7 mrger_1.append(1,2,3) TypeError: list.append() takes exactly one argument (3 given)
mrger_1 = ['խնձոր', 'բանան']
mrger_2 = ['սիմիրենկո', 'գոլդեն', 'համով բանան']
mrger_1.extend(mrger_2)
print(mrger_1)
bolor_mrger = mrger_1 + mrger_2
print(mrger_1)
print(bolor_mrger)['խնձոր', 'բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան']
['խնձոր', 'բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան']
['խնձոր', 'բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան']
ջնջել
mrger = ['սիմիրենկո', 'գոլդեն', 'համով բանան']
mrger.clear()
print(mrger)[]
սորտավորել
# վերջապես
a = [1, 2, 23, 2, 3, 0, -3, 4, -6]
a.sort()
print(a)
# a.sort(reverse=True)[-6, -3, 0, 1, 2, 2, 3, 4, 23]
[1, 2, 23, 2, 3, 0, -3, 4, -6]
# վերջապես
a = ['այբ', "գիմ", "բեն"]
a.sort()
print(a)['այբ', 'բեն', 'գիմ']
շրջել
a = [1,2,3]
a.reverse()
print(a)[3, 2, 1]
print("բարև".reverse())
print("բարև"[::-1])--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Input In [59], in <cell line: 1>() ----> 1 print("բարև".reverse()) 2 print("բարև"[::-1]) AttributeError: 'str' object has no attribute 'reverse'
էլեմենտ հեռացնել
del a[0]a = ['այբ', "գիմ", "բեն", 'այբ', 'պանիր']
a.remove('այբ')
print(a)
a.remove('պանիր')
print(a)['գիմ', 'բեն', 'այբ', 'պանիր']
['գիմ', 'բեն', 'այբ']
jnjac = a.remove(a[0])
print(a)
print(jnjac)['բեն', 'այբ']
None
a = ['այբ', "գիմ", "բեն", 'այբ', 'պանիր']
jnjac = a.pop()
print(a)
print(jnjac)['այբ', 'գիմ', 'բեն', 'այբ']
պանիր
էլեմենտ տեղադրել
mrger = ['խնձոր', "տանձ", "բանան"]
mrger.append('արքայախնձոր')
print(mrger)['խնձոր', 'տանձ', 'բանան', 'արքայախնձոր']
mrger = ['խնձոր', "տանձ", "բանան"]
mrger.insert(1, 'արքայախնձոր')
mrger.insert(123123, 'արքայախնձոր')
print(mrger)['խնձոր', 'արքայախնձոր', 'տանձ', 'բանան', 'արքայախնձոր']
գտնել էլեմենտ
print(mrger.index('արքայախնձոր'))
print(mrger.index('թագուհիախնձոր'))
# չունենք mrger.find()1
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Input In [71], in <cell line: 2>() 1 print(mrger.index('արքայախնձոր')) # ----> 2 print(mrger.index('թագուհիախնձոր')) 3 # չունենք mrger.find() ValueError: 'թագուհիախնձոր' is not in list
help(mrger)Առաջադրանք
Կարգինի շրջորի խնդիր - Վիդեո լուծում - Կարգինը
text = "Բարև Ձեզ Ջրհոր"
lst = text.split()
lst.reverse()
print(lst)
reversed_text = " ".join(lst)
print(reversed_text)['Ջրհոր', 'Ձեզ', 'Բարև']
Ջրհոր Ձեզ Բարև
Ternary (conditional) operators
(ternary որովհետև 3 բանիցա բաղկացած)
"Fear" if ternary_set=="Cantor" else None
(c) Jonathan Coulton
Unconditional Love
(c) Jah Cure
num = 7 # 1
# 'զույգ' # 2
# 'կենտ' # 3 բան ա օգտագործում
if num % 2 == 0:
zueg_te_kent = 'զույգ'
else:
zueg_te_kent = 'կենտ'
print(zueg_te_kent)կենտ
zueg_te_kent = "զույգ" if num % 2 == 0 else "կենտ"
print(zueg_te_kent)կենտ
Ընդհանուր կառուցվածքնա՝
value_if_true if condition else value_if_false
Առաջադրանք 1
չափահաս թե չչափահաս
age = 17
adult_or_not = "Չափահաս" if age >= 18 else "անչափահաս"
print(adult_or_not)
# adult_or_not = "Չափահաս" if age >= 18Input In [81] adult_or_not = "Չափահաս" if age >= 18 ^ SyntaxError: expected 'else' after 'if' expression
Ներդրված (nested) ternary operator
! Չարժի օգտագործել, անընթեռնելի ա
թիվը դրական ա, բացասական թե զրո
num = 509
if num > 0:
sign = "positive"
else:
# if num == 0:
# sign = "zero"
# else:
# sign = "negative"
sign = "zero" if num == 0 else "negative"
sign = "positive" if num > 0 else ("zero" if num == 0 else "negative")
print(sign)
# <արտահայտություն եթե պայմանը ճշմարիտա> if <պայման> else <արտահայտություն եթե սխալա>positive
կարանք առանց փակագիծ էլ
sign = "positive" if num > 0 else ("zero" if num == 0 else "negative")
# կարանք առանց փակագիծ էլ
sign = "positive" if num > 0 else "zero" if num == 0 else "negative"Արագագործություն
%%timeit
num = 509
x = "դրական" if num > 0 else ("zero" if num == 0 else "բացասական")282 ns ± 23.2 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
%%timeit
num = 509
if num > 0:
x = 'դրական'
else:
if num == 0:
x = 'զրո'
else:
x = 'բացասական'362 ns ± 89.7 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
>>> def f():
... return a if b else c
...
>>> dis.dis(f)
2 0 LOAD_GLOBAL 0 (b)
2 POP_JUMP_IF_FALSE 8
4 LOAD_GLOBAL 1 (a)
6 RETURN_VALUE
>> 8 LOAD_GLOBAL 2 (c)
10 RETURN_VALUE
>>> def g():
... if b:
... return a
... else:
... return c
...
>>> dis.dis(g)
2 0 LOAD_GLOBAL 0 (b)
2 POP_JUMP_IF_FALSE 8
3 4 LOAD_GLOBAL 1 (a)
6 RETURN_VALUE
5 >> 8 LOAD_GLOBAL 2 (c)
10 RETURN_VALUE
12 LOAD_CONST 0 (None)list comprehensions
comprehension - հասկանալու կարողություն
Սովորական
Օրինակ 1 | քառակուսի բարձրացնել էլեմենտի տարրերը
# Օրինակ 1 | քառակուսի բարձրացնել էլեմենտի տարրերը
lst = [3, 4, 1, 0, 12, 509, 88]
qarakusiner = []
for x in lst:
qarakusiner.append(x**2)
print(qarakusiner)[9, 16, 1, 0, 144, 259081, 7744]
qarakusiner = [x**2 for x in lst]
print(qarakusiner)[9, 16, 1, 0, 144, 259081, 7744]
Ընդհանուր կառուցվածքը՝
[expression for item in list]
Օրինակ 2 | մեկից տաս թվերի քառակուսիներ
# Օրինակ 2 | մեկից տաս թվերի քառակուսիներ
qarakusiner_mekic_tas = []
for x in range(1,11):
qarakusiner_mekic_tas.append(x**2)
print(qarakusiner_mekic_tas)[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
qarakusiner_mekic_tas = [x**2 for x in range(1, 11)]
print(qarakusiner_mekic_tas)[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Օրինակ 3 (filter) | ցուցակում զույգ թվերը պահենք մեկ այլ ցուցակի մեջ
lst = [3, 4, 1, 0, 11, 509, 88]
zueger = []
for i in lst:
if i % 2 == 0:
zueger.append(i)
print(zueger)[16, 0, 7744]
zueger = [i for i in lst if i % 2 == 0]bolor = [i for i in lst]
print(bolor)
zueger = [i for i in lst if i % 2 == 0]
print(zueger)[3, 4, 1, 0, 11, 509, 88]
[4, 0, 88]
zueger = [i for i in lst if i % 2 == 0]
print(zueger)[4, 0, 88]
# եթե ուզենք զույգ թվերի քանակուսիները կարանք գրենք՝
zuegeri_qarakusiner = [i**2 for i in lst if i % 2 == 0]
print(zuegeri_qarakusiner)[16, 0, 7744]
Օրինակ 4 (list comprehensions for filtering)
# Օրինակ 4 | հեռացնել ցուցակից ռ պարունակողները
barer = ['ռոբոտ', 'ռնգեղջուր', "ռումբա", "սալսա", "միաեղջուր", "պանիր"]barer_aranc_r = []
for i in barer:
if not ('ռ' in i):
barer_aranc_r.append(i)
print(barer_aranc_r)['սալսա', 'միաեղջուր', 'պանիր']
barer_aranc_r = [i for i in barer if not ('ռ' in i)]
print(barer_aranc_r)['սալսա', 'միաեղջուր', 'պանիր']
print + list comprehensions
Սա զուտ profound-ում կարա օգնի, պրակտիկայում խորհուրդ չեմ տա օգտագործել
barer_aranc_r = [i for i in barer if not 'ռ' in i]
for i in barer_aranc_r:
print(i)
սալսա
միաեղջուր
պանիր
սալսա միաեղջուր պանիր
# եթե ուզենանք տպել սա կարող ենք գրել
a = [print(i) for i in barer if not 'ռ' in i]
print(a)
a = [print(i, end=" ") for i in barer if not 'ռ' in i]սալսա
միաեղջուր
պանիր
[None, None, None]
սալսա միաեղջուր պանիր
Արագագործություն
Նյութ (5 րոպեանոց վիդեո ա ընդամենը)
%%timeit
barer_aranc_r = []
for i in barer:
if not 'ռ' in i:
barer_aranc_r.append(i)2.31 µs ± 400 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
%%timeit
barer_aranc_r = [i for i in barer if not 'ռ' in i]2.89 µs ± 359 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
Առաջադրանք: ավելի մեծ քան նախորդը (profound)
lst = [10, 40, 23, 509, 4]lav_videoner = []
for i in range(len(lst)-1):
if lst[i+1] > lst[i]:
lav_videoner.append(lst[i+1])lav_videoner = [lst[i+1] for i in range(len(lst)-1) if lst[i+1] > lst[i]]
lav_videoner[40, 509]
Առաջադրանք (2 հատ if)
1 - 100 6-ի բաժանվող թվերը, որոնք վերջանում են 2-ով
nums = []
for i in range(1, 101):
if i % 6 == 0 and i % 10 == 2:
nums.append(i)
print(nums)[12, 42, 72]
nums = [i for i in range(1, 101) if i % 6 == 0 and i % 10 == 2]
print(nums)
# էլի անընթեռնելի ա, ավելի լավ ա բացված տեսքով գրել[12, 42, 72]
Ternary operator + List comprehension
ցուցակի մեջ պահել 1-ից 5 թվերի զույգությունները (զույգ/կենտ)
lst = [1,2,3,4,5]
# ["կենտ", "զույգ", "կենտ", "զույգ", "կենտ"]
zuegutunner = ['զույգ' if i % 2 == 0 else "կենտ" for i in lst]
print(zuegutunner)['կենտ', 'զույգ', 'կենտ', 'զույգ', 'կենտ']
lst = []
for i in lst:
if i % 2 == 0:
lst.append("զույգ")
else:
lst.append('կենտ')
print(lst)['կենտ', 'զույգ', 'կենտ', 'զույգ', 'կենտ']
lst = []
for i in range(1, 6):
lst.append("զույգ" if i % 2 == 0 else "կենտ")
print(lst)['կենտ', 'զույգ', 'կենտ', 'զույգ', 'կենտ']
lst = ["զույգ" if tiv % 2 == 0 else "կենտ" for tiv in range(1, 6)]
print(lst)
['կենտ', 'զույգ', 'կենտ', 'զույգ', 'կենտ']
Nested list comprehensions (լրացուցիչ)
Ուղղակի վարժվելու համար ա, պրակտիկայում ավելի լավ ա ուղղակի բացված տեսքով գրել,
են որ կարանք լիքը բան մի տողով գրենք, հեչ չի նշանակում որ պետք ա
քառակուսիների օրինակ
a = [
[1, 0, 3],
[4, 5, 6]
]
a[[1, 0, 3], [4, 5, 6]]
qarakusiner = []
for tox in a:
tox_qarakusiner = []
for j in tox:
tox_qarakusiner.append(j**2)
# print(tox_qarakusiner)
qarakusiner.append(tox_qarakusiner)
qarakusiner[[1, 0, 9], [16, 25, 36]]
tox_qarakusiner = []
for j in tox:
tox_qarakusiner.append(j**2)
tox_qarakusiner = [j**2 for j in tox]
# սա դառնումա
tox = a[0]
tox_qarakusiner = [j**2 for j in tox]
tox_qarakusiner[1, 0, 9]
qarakusiner = []
for tox in a:
tox_qarakusiner = [j**2 for j in tox]
qarakusiner.append(tox_qarakusiner)
qarakusiner[[1, 0, 9], [16, 25, 36]]
qarakusiner = [tox_parakusiner for tox in a]qarakusiner = [[j**2 for j in tox] for tox in a]
qarakusiner[[1, 0, 9], [16, 25, 36]]
Մատրիցի օրինակ
# Սարքել սենց մատրից
matrix = [[0, 1, 2, 3, 4, ..., n],
[0, 1, 2, 3, 4, ..., n],
[0, 1, 2, 3, 4, ..., n],
[0, 1, 2, 3, 4, ..., n],
[0, 1, 2, 3, 4, ..., n]]
n = 5matrix = [list(range(n+1)) for i in range(n+1)]
matrix # սենց ավելի ընթեռնելի ա տպում[[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]]
tox = []
for i in range(n+1):
tox.append(i)
print(tox)
[0, 1, 2, 3, 4, 5]
tox = [j for j in range(n)]
tox[0, 1, 2, 3, 4]
matrix = []
for r in range(n):
tox = [i for i in range(n)]
matrix.append(tox)
matrix[[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]]
matrix = [[i for i in range(n)] for r in range(n)]
matrix[[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]]
Ցուցակի մեջ ցուցակը տափակեցնել
nested_list = [[1, 2], [3, 4], [5, 6]]
print(nested_list)
nested_list = [1,2,3,4,5,6][[1, 2], [3, 4], [5, 6]]
nested_list = [[1, 2], [3, 4], [5, 6]]
tapakacrac = []
for entalist in nested_list:
for i in entalist:
tapakacrac.append(i)
tapakacrac[1, 2, 3, 4, 5, 6]
# ստեղ պետքա զգույշ լինենք
tapakacrac = [i for entalist in nested_list for i in entalist]
print(tapakacrac)[1, 2, 3, 4, 5, 6]
🏡Տնային
Հիմնական տնային
Նշումներ
- Եթե կուզեք կարաք Ներդրված ցիկլեր (բաժին 20)ը անեք, որոշները ավելի շատ բայց հենց ծրագրավորման տեսանկյունից են հետաքրքիր, ոչ թե Python-ի
- Կարող եք նաև ներդրված list comprehension-ների խնդիրները նայել, բայց ուղղակի որպես վարժանք նայեք դրանց, պրակտիկայում ավելի լավ ա ընդարձակ տեսքով գրեք կոդը
Լուծումներ
🛠️ Գործնական (ToDo)
🎲 5
- ▶️Kurzgesast
- ▶️Random link
- 🇦🇲🎶Khachaturian
- 🌐🎶Alice Phoebe Lou
- 🤌Կարգին