= "JoHn"
anun = 'smith'
azganun = 'john smith' mard
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()) # uppercase
JoHn
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
սկիզբ/վերջը ստուգել
= 'panir.com'
a = 'panir hamov' b
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
ստուգել ինչերից ա բաղկացած
= 'asdasdvAFASD122313'
tar_tiv = 'mynhtgfe12312$%$%@asda'
xary = 'rfedsaasd'
tarer = '12350911509' tver
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(
['Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ']
= "11 2 3 5 asd \
a 4 \
5"
a.split()
['11', '2', '3', '5', 'asd', '4', '5']
Հիմա հակառակը
= ['Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ'] barer
str(barer)
"['Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ']"
print(" ".join(barer))
print('Ողջույն բոլորին', 'բարևներ', 'պրիվեեեետ', sep=" ")
Ողջույն բոլորին բարևներ պրիվեեեետ
Ողջույն բոլորին բարևներ պրիվեեեետ
", ".join(barer)
'Ողջույն բոլորին, բարևներ, պրիվեեեետ'
"&&&".join(barer)
'Ողջույն բոլորին&&&բարևներ&&&պրիվեեեետ'
հաշվել, գտնել, փոխել
= 'abc bc a a aaa' s
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.replace('ռ', 'ր')
s
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 != "ա":
+= i
maqrac_s print(maqrac_s)
սդսդդւըյըտռտեռֆ տգտռ,,, ե, դգֆ
List methods
միավորում
= ['խնձոր', 'բանան']
mrger_1
"sjadad")
mrger_1.append(
print(mrger_1)
1,2,3) mrger_1.append(
['խնձոր', 'բանան', '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)
= mrger_1 + mrger_2
bolor_mrger
print(mrger_1)
print(bolor_mrger)
['խնձոր', 'բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան']
['խնձոր', 'բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան']
['խնձոր', 'բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան', 'սիմիրենկո', 'գոլդեն', 'համով բանան']
ջնջել
= ['սիմիրենկո', 'գոլդեն', 'համով բանան']
mrger
mrger.clear()
print(mrger)
[]
սորտավորել
# վերջապես
= [1, 2, 23, 2, 3, 0, -3, 4, -6]
a
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)
['այբ', 'բեն', 'գիմ']
շրջել
= [1,2,3]
a
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)
['գիմ', 'բեն', 'այբ', 'պանիր']
['գիմ', 'բեն', 'այբ']
= a.remove(a[0])
jnjac
print(a)
print(jnjac)
['բեն', 'այբ']
None
= ['այբ', "գիմ", "բեն", 'այբ', 'պանիր']
a
= a.pop()
jnjac
print(a)
print(jnjac)
['այբ', 'գիմ', 'բեն', 'այբ']
պանիր
էլեմենտ տեղադրել
= ['խնձոր', "տանձ", "բանան"]
mrger 'արքայախնձոր')
mrger.append(
print(mrger)
['խնձոր', 'տանձ', 'բանան', 'արքայախնձոր']
= ['խնձոր', "տանձ", "բանան"]
mrger 1, 'արքայախնձոր')
mrger.insert(123123, 'արքայախնձոր')
mrger.insert(
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
= text.split()
lst
lst.reverse()
print(lst)
= " ".join(lst)
reversed_text
print(reversed_text)
['Ջրհոր', 'Ձեզ', 'Բարև']
Ջրհոր Ձեզ Բարև
Ternary (conditional) operators
(ternary որովհետև 3 բանիցա բաղկացած)
"Fear" if ternary_set=="Cantor" else None
(c) Jonathan Coulton
Unconditional Love
(c) Jah Cure
= 7 # 1
num # 'զույգ' # 2
# 'կենտ' # 3 բան ա օգտագործում
if num % 2 == 0:
= 'զույգ'
zueg_te_kent else:
= 'կենտ'
zueg_te_kent print(zueg_te_kent)
կենտ
= "զույգ" if num % 2 == 0 else "կենտ"
zueg_te_kent print(zueg_te_kent)
կենտ
Ընդհանուր կառուցվածքնա՝
value_if_true if condition else value_if_false
Առաջադրանք 1
չափահաս թե չչափահաս
= 17
age
= "Չափահաս" if age >= 18 else "անչափահաս"
adult_or_not
print(adult_or_not)
# adult_or_not = "Չափահաս" if age >= 18
Input In [81] adult_or_not = "Չափահաս" if age >= 18 ^ SyntaxError: expected 'else' after 'if' expression
Ներդրված (nested) ternary operator
! Չարժի օգտագործել, անընթեռնելի ա
թիվը դրական ա, բացասական թե զրո
= 509
num
if num > 0:
= "positive"
sign else:
# if num == 0:
# sign = "zero"
# else:
# sign = "negative"
= "zero" if num == 0 else "negative"
sign
= "positive" if num > 0 else ("zero" if num == 0 else "negative")
sign print(sign)
# <արտահայտություն եթե պայմանը ճշմարիտա> if <պայման> else <արտահայտություն եթե սխալա>
positive
կարանք առանց փակագիծ էլ
= "positive" if num > 0 else ("zero" if num == 0 else "negative")
sign # կարանք առանց փակագիծ էլ
= "positive" if num > 0 else "zero" if num == 0 else "negative" sign
Արագագործություն
%%timeit
= 509
num = "դրական" if num > 0 else ("zero" if num == 0 else "բացասական") x
282 ns ± 23.2 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
%%timeit
= 509
num
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 | քառակուսի բարձրացնել էլեմենտի տարրերը
= [3, 4, 1, 0, 12, 509, 88]
lst
= []
qarakusiner for x in lst:
**2)
qarakusiner.append(x
print(qarakusiner)
[9, 16, 1, 0, 144, 259081, 7744]
= [x**2 for x in lst]
qarakusiner 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):
**2)
qarakusiner_mekic_tas.append(x
print(qarakusiner_mekic_tas)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
= [x**2 for x in range(1, 11)]
qarakusiner_mekic_tas print(qarakusiner_mekic_tas)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Օրինակ 3 (filter) | ցուցակում զույգ թվերը պահենք մեկ այլ ցուցակի մեջ
= [3, 4, 1, 0, 11, 509, 88]
lst
= []
zueger for i in lst:
if i % 2 == 0:
zueger.append(i)
print(zueger)
[16, 0, 7744]
= [i for i in lst if i % 2 == 0] zueger
= [i for i in lst]
bolor print(bolor)
= [i for i in lst if i % 2 == 0]
zueger print(zueger)
[3, 4, 1, 0, 11, 509, 88]
[4, 0, 88]
= [i for i in lst if i % 2 == 0]
zueger print(zueger)
[4, 0, 88]
# եթե ուզենք զույգ թվերի քանակուսիները կարանք գրենք՝
= [i**2 for i in lst if i % 2 == 0]
zuegeri_qarakusiner 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)
['սալսա', 'միաեղջուր', 'պանիր']
= [i for i in barer if not ('ռ' in i)]
barer_aranc_r print(barer_aranc_r)
['սալսա', 'միաեղջուր', 'պանիր']
print + list comprehensions
Սա զուտ profound-ում կարա օգնի, պրակտիկայում խորհուրդ չեմ տա օգտագործել
= [i for i in barer if not 'ռ' in i]
barer_aranc_r
for i in barer_aranc_r:
print(i)
սալսա
միաեղջուր
պանիր
սալսա միաեղջուր պանիր
# եթե ուզենանք տպել սա կարող ենք գրել
= [print(i) for i in barer if not 'ռ' in i]
a print(a)
= [print(i, end=" ") for i in barer if not 'ռ' in i] a
սալսա
միաեղջուր
պանիր
[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
= [i for i in barer if not 'ռ' in i] barer_aranc_r
2.89 µs ± 359 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
Առաջադրանք: ավելի մեծ քան նախորդը (profound)
= [10, 40, 23, 509, 4] lst
= []
lav_videoner
for i in range(len(lst)-1):
if lst[i+1] > lst[i]:
+1]) lav_videoner.append(lst[i
= [lst[i+1] for i in range(len(lst)-1) if lst[i+1] > lst[i]]
lav_videoner 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]
= [i for i in range(1, 101) if i % 6 == 0 and i % 10 == 2]
nums print(nums)
# էլի անընթեռնելի ա, ավելի լավ ա բացված տեսքով գրել
[12, 42, 72]
Ternary operator + List comprehension
ցուցակի մեջ պահել 1-ից 5 թվերի զույգությունները (զույգ/կենտ)
= [1,2,3,4,5]
lst
# ["կենտ", "զույգ", "կենտ", "զույգ", "կենտ"]
= ['զույգ' if i % 2 == 0 else "կենտ" for i in lst]
zuegutunner 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):
"զույգ" if i % 2 == 0 else "կենտ")
lst.append(
print(lst)
['կենտ', 'զույգ', 'կենտ', 'զույգ', 'կենտ']
= ["զույգ" if tiv % 2 == 0 else "կենտ" for tiv in range(1, 6)]
lst 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:
**2)
tox_qarakusiner.append(j# print(tox_qarakusiner)
qarakusiner.append(tox_qarakusiner)
qarakusiner
[[1, 0, 9], [16, 25, 36]]
= []
tox_qarakusiner for j in tox:
**2)
tox_qarakusiner.append(j
= [j**2 for j in tox]
tox_qarakusiner
# սա դառնումա
= a[0]
tox = [j**2 for j in tox]
tox_qarakusiner tox_qarakusiner
[1, 0, 9]
= []
qarakusiner for tox in a:
= [j**2 for j in tox]
tox_qarakusiner
qarakusiner.append(tox_qarakusiner)
qarakusiner
[[1, 0, 9], [16, 25, 36]]
= [tox_parakusiner for tox in a] qarakusiner
= [[j**2 for j in tox] for tox in a]
qarakusiner qarakusiner
[[1, 0, 9], [16, 25, 36]]
Մատրիցի օրինակ
# Սարքել սենց մատրից
= [[0, 1, 2, 3, 4, ..., n],
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]]
[
= 5 n
= [list(range(n+1)) for i in range(n+1)]
matrix # սենց ավելի ընթեռնելի ա տպում 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]
= [j for j in range(n)]
tox tox
[0, 1, 2, 3, 4]
= []
matrix for r in range(n):
= [i for i in range(n)]
tox
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]]
= [[i for i in range(n)] for r in range(n)]
matrix 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]]
Ցուցակի մեջ ցուցակը տափակեցնել
= [[1, 2], [3, 4], [5, 6]]
nested_list print(nested_list)
= [1,2,3,4,5,6] nested_list
[[1, 2], [3, 4], [5, 6]]
= [[1, 2], [3, 4], [5, 6]]
nested_list
= []
tapakacrac
for entalist in nested_list:
for i in entalist:
tapakacrac.append(i) tapakacrac
[1, 2, 3, 4, 5, 6]
# ստեղ պետքա զգույշ լինենք
= [i for entalist in nested_list for i in entalist]
tapakacrac print(tapakacrac)
[1, 2, 3, 4, 5, 6]
🏡Տնային
Հիմնական տնային
Նշումներ
- Եթե կուզեք կարաք Ներդրված ցիկլեր (բաժին 20)ը անեք, որոշները ավելի շատ բայց հենց ծրագրավորման տեսանկյունից են հետաքրքիր, ոչ թե Python-ի
- Կարող եք նաև ներդրված list comprehension-ների խնդիրները նայել, բայց ուղղակի որպես վարժանք նայեք դրանց, պրակտիկայում ավելի լավ ա ընդարձակ տեսքով գրեք կոդը
Լուծումներ
🛠️ Գործնական (ToDo)
🎲 5
- ▶️Kurzgesast
- ▶️Video 🔥
- 🇦🇲🎶Khachaturian
- 🌐🎶Alice Phoebe Lou
- 🤌Կարգին