C-16-23 Lists
C-16-23 Lists
اﻟﻘﻮاﺋﻢ Lists
اﻷﻗﺳﺎم
3
اﻟﻘواﺋم Lists
اﻷﻧواع اﻟﻣﺧﺗﻠﻔﺔ : ●
○ اﻟﻘﺎﺋﻣﺔ List
■ ﯾﺗم اﻟﺗﻌﺎﻣل ﻣﻌﮭﺎ ﺑﺎﻷﻗواس ] [
■ ﺗﺷﻣل أﻧواع ﻣﺧﺗﻠﻔﺔ ﻣن اﻟﺑﯾﺎﻧﺎت ,وﯾﻣﻛن ﺗﻌدﯾﻠﮭﺎ ﻻﺣﻘﺎ
○ اﻟﺻﻔوف tuple
■ ﯾﺗم اﻟﺗﻌﺎﻣل ﻣﻌﮭﺎ ﺑﺎﻷﻗواس ) (
■ ﺗﺷﻣل ﺑﯾﺎﻧﺎت ﻏﯾر ﻗﺎﺑﻠﺔ ﻟﻠﺗﻐﯾﯾر
○ اﻟﻣﺟﻣوﻋﺔ Set
■ ﯾﺗم اﻟﺗﻌﺎﻣل ﻣﻌﮭﺎ ﺑﺎﻷﻗواس } {
■ ﻻ ﺗﻘﺑل اﻟﺗﻛرار
○ اﻟﻘﺎﻣوس Dictionary
■ ﯾﻛون ﺷﻛﻠﮭﺎ }'{a':1, 'b':2, 'c':3
■ ﺗﺷﻣل ﻋﻠﻲ دﻟﯾل و ﻣﻔﺎﺗﯾﺢ و ﻗﯾم 4
اﻟﻘواﺋم Lists
ﯾﺗم ﺗﻌرﯾﻔﮭﺎ ﻋن طرﯾق اﻧﻲ اﻛﺗب اﺳﻣﮭﺎ و اﻋﻣل اﻗواس ﻣرﺑﻌﺔ ﻓﺎﺿﯾﺔ ●
][=L
و اﺿﯾف ﻋﻠﯾﮭﺎ ارﻗﺎم ﺑﺎﻟطرﯾﻘﺔ دﯾﮫ ●
]s = [1,2,3,6,9,8,7
ﻣﻣﻛن اﻟﻘﺎﺋﻣﺔ ﺗﺣﺗوي ﻋﻠﻲ ﻋﻧﺎﺻر ﻣن اﻧواع ﻣﺧﺗﻠﻔﺔ ●
] ] s = [ 2 , 3, [ 4 , 5
5
اﻟﻘواﺋم Lists
ﻟﻣﺎ ﺑدﺧل ﺗﯾﻛﺳت و اﺣوﻟﮭﺎ ﻟﯾﺳت ,ﺑﺗﻛون ﻋﻧﺎﺻرھﺎ ﻛل ﺣرف ﻣن ﺣروﻓﮭﺎ ﺣﺗﻲ اﻟﻣﺳﺎﻓﺔ ●
a,b,c,d,e,f,g = x
و ﻣﻣﻛن اﻛﺗب ﻋﻧﺻر ﻣﺣدد ھﯾﻛﺗﺑﻠك ﻗﯾﻣﺗﮫ ,وﻻﺣظ ان اول رﻗم داﯾﻣﺎ ﺑﯾﻛون ﺗرﺗﯾﺑﮫ ﺻﻔر ,ﻓده ﻣﻌﻧﺎه ●
اﻟﻌﻧﺻر اﻟﺧﺎﻣس
]s[4
6
اﻟﻘواﺋم Lists
وﻟو اﻧﺎ ﻋﺎﯾز اﻋﻣل ﻟﯾﺳت ﻋﺑﺎرة ﻋن ﻋدد ﻣن ﻋﻧﺎﺻر اﻟﻠﯾﺳت دﯾﮫ ,ﻓﺎﻋﻣﻠﮭﺎ ﻛدة ,ودﯾﮫ ﻣﻌﻧﺎھﺎ ان ●
ﻟﯾﺳت واي ھﻲ ﻟﯾﺳﺗﮫ ﻋﺑﺎرة ﻋن اﻟﻌﻧﺎﺻر ﻣن اﻟﻌﻧﺻر 5ﻟﻠﻌﻧﺻر اﻟﺗﺎﺳﻊ ﻓﻲ ﻣﺻﻔوﻓﺔ ﺗﻲ ,ﻻﺣظ اﻧﮫ
ﺑﯾﺑدا ﺑﺎﻟرﻗم اﻻول ,وﯾﻧﺗﮭﻲ ﺑﺎﻟرﻗم ﻗﺑل اﻻﺧﯾر
]y = t[5:10
و ﻣﻣﻛن اﻗوﻟﮫ ھﺎت ﻛل اﻟﻌﻧﺎﺻر ﻟﻐﺎﯾﺔ اﻟﻌﻧﺻر اﻟﺳﺎدس ,اﺳﯾب اﻟﺧﺎﻧﺔ اﻻوﻟﻲ ﻓﺎﺿﯾﺔ ●
]y = t[:7
ﻣﻌﻧﺎھﺎ ھﺎت اﻟﻌﻧﺎﺻر ﻣن اﻻول ,ﻟﻛن ﺗﺟﺎھل اﺧر 3ﻋﻧﺎﺻر ﻣن اﻻﺧر ●
]y = t[:-3
7
اﻟﻘواﺋم Lists
]y = t[7:
وﻟو ﻋﺎﯾزھﺎ ﻛﻠﮭﺎ ﺗﻛﺗب ﻛدة ●
]y = t[:
ﯾﺗم ﻋﻣل ﺗﻌدﯾل ﻓﻲ اﻟﻠﯾﺳت ●
t[7]=5
ﺑﺎﻣﺳﺢ ﻣن اﻟﻌﻧﺻر اﻟﺗﺎﻟت ﻟﻠﺧﺎﻣس ●
][=]t[2:5
8
اﻟﻘواﺋم Lists
][=]t[:
ﻟﯾﺳت ﺟوة اﻟﻠﯾﺳت ●
]x[0
9
اﻟﻘواﺋم Lists
ﺑﺗﺳﺧدم ﻟﻣﺎ ﯾﻛون ﻋﻧدي ﻟﯾﺳت ﺟوة ﻟﯾﺳت ,ﻓﻛدة ﯾروح ﻟﻠﻌﻧﺻر اﻟﺳﺎدس ,ھﯾﻼﻗﯾﮫ ﻟﯾﺳت ,ﯾﺟﯾب ﻣﻧﮫ ●
اﻟﻌﻧﺻر اﻟﺗﺎﻧﻲ
]x[5][1
وﻟو ﻋﺎﯾز اﻣﺳﺢ ﻗﯾﻣﺔ ﻓﯾﮭم اﻋﻣل دﯾل واﻛﺗب اﺳم اﻟﻠﯾﺳت و اﻻﻧدﻛﯾس ●
]del t[4
وﻟو ﻋﺎﯾز اﻣﺳﺢ ﻛل اﻟﻠﯾﺳت اﻛﺗب ﻛدة ●
del y
ﯾﻌﻧﻲ اﻣﺳﺢ اي ﻋﻧﺻر اﺳﻣﮫ b ●
)”y.remove(“b
10
اﻟﻘواﺋم Lists
ss= y + t
وﻟو ﻋﻣﻠت ﺿرب ﻟﻠﯾﺳﺗﺔ ﻓﻲ رﻗم ,ﺳﺎﻋﺗﮭﺎ ھﺗﺗﻛرر اﻟﻌﻧﺎﺻر ﺧﻣس ﻣرات ●
y*5
ﻟو ﻋﺎﯾز ﻣﺛﻼ اﻋﻣل ﻟﺳﺗﺔ ﻓﯾﮭﺎ اﻟف رﻗم اﻧﺗﺟر ●
)len (y
ﻣﺟﻣوع ﻗﯾﻣﮭﺎ ﻟو ارﻗﺎم ,وﻟو اﻟﻌﻧﺎﺻر ﻓﯾﮭﺎ ﺣﺎﺟﺔ ﻣش ارﻗﺎم ﻣش ھﺗﻧﻔﻊ ●
)sum(y
12
اﻟﻘواﺋم Lists
اﻗل او اﻛﺑر ﻗﯾﻣﺔ ﻓﯾﮭﺎ وﻟو اﺳﺗﺧدﻣﻧﺎھﺎ ﻓﻲ اﻟﺳﺗرﻧﺞ ,ھﯾﺗﻌﺎﻣل ان ﺣروف a, b , cھﻲ اﻻﺻﻐر و ●
ان x , y , zاﻛﺑر
)max(y
)min(y
ﺑﯾرﺗﺑﮭم ﻣن اﻟﺻﻐر ﻟﻠﻛﺑﯾر ,ﺳواء ارﻗﺎم او ﺣروف ●
)sorted(y
ﻟو ﻋﻣﻠت اﻣر sortوﻗﺗﮭﺎ ھﯾﺗم ﺗرﺗﯾب اﻟﻘﺎﺋﻣﺔ ﻧﻔﺳﮭﺎ ●
)(y.sort
13
اﻟﻘواﺋم Lists
)sorted(y,reverse = True
ﻟو ﻋﺎﯾز ارﺗب ﺑﻧﺎء ﻋﻠﻲ اﻟﻌﻧﺻر اﻟﺗﺎﻧﻲ ﻣش اﻻول ,ﯾﻌﻧﻲ دﯾﮫ ●
])[('At', 85), ('Br', 35), ('Cl', 17), ('F', 9), ('I', 53
])[('F', 9), ('Cl', 17), ('Br', 35), ('I', 53), ('At', 85
)(s.split
ﻟو ﻋﺎﯾز اﻋرف ھل ﻓﯾﮫ ﻋﻧﺻر ﻣﻌﯾن ﻣوﺟود ﻓﻲ اﻟﻠﯾﺳت وﻻ ﻻ ,اﻛﺗب اﻟﻌﻧﺻر ﺑﻌدھﺎ ان ﺑﻌدھﺎ ●
اﻟﻠﯾﺳت ,وھﺗرﺟﻌﻠﻲ ب trueاو false
7 in y
ھﻧزود ﻋﻠﻲ اﻟﻘﺎﯾﻣﺔ yﻛل ﻋﻧﺎﺻر x ●
)y.extend(x 15
اﻟﻘواﺋم Lists
)y.append (555
ﻟو ﻋﺎﯾز اﺿﯾف ﻋﻧﺻر ﻓﻲ ﻣﻛﺎن ﻣﻌﯾن ﻓﻲ اﻟﻠﯾﺳت ) ﻣش ﻓﻲ اﻻﺧر ( ﯾﺑﻘﻲ اﻧﺳرت ,اﻛﺗب اﻻول رﻗم ●
اﻻﻧدﯾﻛس اﻟﻣطﻠوب ,وﺑﻌدھﺎ اﻛﺗب اﻟﻘﯾﻣﺔ
)y.insert(5,999999
ﻟو ﻋﺎﯾز اﺷوف اﻟﻌﻧﺻر اﻟﻔﻼﻧﻲ اﺗﻛرر ﻛﺎم ﻣرة اﺳﺗﺧدم ﻛﺎوﻧت ●
)y.count (555
ﻟو ﻋﺎﯾز اﻋرف اﻟﻌﻧﺻر اﻟﻔﻼﻧﻲ رﻗﻣﮫ ﻛﺎم :اﻧدﯾﻛس ●
ﻣﻣﻛن اﻋﻣل ﻋﻛس ﻟﺗرﺗﯾب اﻟﻌﻧﺎﺻر ,اﻻﺧر اول و اﻻول اﺧر ●
)(x.reverse
ﯾﺣذف اﺧر ﻋﻧﺻر ﻓﻲ اﻟﻠﯾﺳﺗﺔ ●
)(y.pop
ﯾﺣذف اﻟﻌﻧﺻر اﻟﺧﺎﻣس ﻓﻲ اﻟﻠﯾﺳﺗﺔ ●
)y.pop(4
داﻟﺔ اﺳﻣﮭﺎ اﻟرﯾﻧﺞ ,ودﯾﮫ ﺑﺗﺳﺗﺧدم ﻟﻌﻣل ارﻗﺎم ﻣن ﺻﻔر ﻟﻘﺑل اﻟرﻗم اﻟﻣﻌطﻲ ﺑواﺣد ●
)N = range(20
17
اﻟﻘواﺋم Lists
))M = list(range(20
وﻟو ﻋﺎﯾز رﯾﻧﺞ ﻣن رﻗم ﻟرﻗم )ﻧﺎﻗص واﺣد(ﺗﻌﻣﻠﮫ ﻛدة ,ھﺗﻼﻗﻲ ان اﻻرﻗﺎم اﺗﻌرﺿت ﻣن 2ﻟـ 19 ●
)N = range(2,20
وﻟو ﻋﺎﯾز ﯾﻛون ﻓﯾﮫ ﺧطوة اﻋﻣل ﻛدة )ﯾﻌﻧﻲ ( . . . 8 , 5 , 2 ●
)N = range(2,20,3
18
اﻟﻘواﺋم Lists
و ﻣﻣﻛن ﯾﻛون ﺗﻛوﯾن اﻟﻠﯾﺳت ,ﺑﺎﻟﺷﻛل ده ,اﻧﻲ اﻗوﻟﮫ ﻋﺎﯾز ﺗﻛﻌﯾب ﻛل اﻻرﻗﺎم ﻣن ﺻﻔر ﻟـ 11 ●
ﻟﻣﺎ ﺑﺎﻋﻣل iterﻗﺑل اي ﻟﯾﺳت ,ﻛل ﻣﺎ اﻧده ﻟﮭﺎ ﺑﻛﻠﻣﺔ , nextھﯾﺟﯾب اﻟﻘﯾﻣﺔ اﻟﻠﻲ ﺑﻌدھﺎ ●
))I = iter(range(20
20
اﻟﻘواﺋم Lists
]x = [1,2
y=x
ﻟو ﺗم ﺗﻌدﯾل ﻗﯾم ﻣﻌﯾﻧﺔ ﻓﻲ اﻟﻠﯾﺳت )ﺣﺗﻲ ﻟو ﻛﻠﮭﺎ( ﻓﺎﻟﻠﯾﺳﺗﺔ اﻟﺟدﯾدة yھﯾﺗم اﻟﺗﻌدﯾل ﻓﯾﮭﺎ ,ﺣﺗﻲ ﻟو ﻣﻘﻠﺗش ●
ﺗﺎﻧﻲ ان y=x
]x = [1,2
y=x
x[0] = 5
x[1] = 15 21
اﻟﻘواﺋم Lists
ﻟﻛن ﻟو ﺗم ﺗﻌدﯾل اﻟﻠﯾﺳت اﻻوﻟﻲ ﻛﻠﮭﺎ ﺑﺎرﻗم ﺗﺎﻧﯾﺔ ,ﺑﺎﻟﻠﯾﺳت اﻟﻠﻲ ﻛﺎﻧت ﺑﺗﺳﺎوﯾﮭﺎ yﻣش ھﺗﺗﻌدل , ●
وھﺗﻔﺿل ﺑﻧﻔس ﻗﯾﻣﮭﺎ اﻟﻘدﯾﻣﺔ
]x = [1,2
y=x
]x = [6,9
22
اﻟﻘواﺋم Lists
و ﻣن اﻷدوات اﻟﻘوﯾﺔ ﻣﻊ اﻟﯾﺳت او اﻟﺗﺎﺑل ,اداة , enumerateواﻟﻠﻲ ﺑﺗﺧﻠﯾك ﺗﻘطﻊ اي ﺳﺗرﻧﺞ ,او ●
ﺗﻣﺳك اي ﻟﺳت او ﺗﺑل ,ﻋﺷﺎن ﺗﺎﺧد اﻟﻌﻧﺎﺻر ﻓﯾﮭﺎ و ﺗرﻗﻣﮭﺎ
ال enumerateﺑﺗﺎﺧد ﻗﯾﻣﺗﯾن ,اﻷوﻟﻲ اﻟﻌداد ,واﻟﺗﺎﻧﯾﺔ اﻟﻌﻧﺻر ﻧﻔﺳﮫ ●
)enumerate(items, 4
23
اﻟﻘواﺋم Lists
اداة ﺗﺎﻧﯾﺔ ﻓﻲ ﻧﻔس اﻟﺳﯾﺎق ھﻲ اﻟـ zipو اﻟﻠﻲ ﺑﺗﺟﻣﻊ ﻋﻧﺎﺻر اﺗﻧﯾن ﻟﯾﺳت ,ﺑﺣﯾث ﺗرﺑط ﺑﯾن واﺣدة ﻣن ●
ھﻧﺎ وﻣن ھﻧﺎك
ﯾﻌﻧﻲ ھﻧﺎ ھﯾﺗم اﻟﺟﻣﻊ ﺑﯾن اﻟﻌﻧﺻر اﻻول ھﻧﺎ ,واﻻول ھﻧﺎ ,ﺑﻌدھﺎ اﻟﺗﺎﻧﻲ ھﻧﺎ ,واﻟﺗﺎﻧﻲ ھﻧﺎ و ھﻛذا ●
24
Lists اﻟﻘواﺋم
print(sorted(student_tuples, key=itemgetter(2)))
25
اﻟﻘواﺋم Lists
ﻛدة ھﯾرﺗﺑﮭم ﺗﺑﻌﺎ ﻟﻠﻌﻧﺻر اﻟﺗﺎﻧﻲ )اﻟﺣروف( وﻟو ﺗﺳﺎوت ﻗﯾﻣﺗﯾن ,ھﯾرﺗﺑﮭم ﺗﺑﻌﺎ ﻟﻠﻌﻧﺻر اﻟﺗﺎﻟت ●
)اﻟﺳن(
)))print(sorted(student_tuples, key=itemgetter(1,2
ﻣن ﻧﻔس اﻟﻣﻛﺗﺑﺔ ﻣﻣﻛن ﻧﺳﺗﺧدم اداة methodcaller ●
ﻣﻌﻧﺎھﺎ رﺗب اﻟﻛﻠﻣﺎت دﯾﮫ ﺗﺑﻌﺎ ﻟﻌدد ﺣرف aﻓﯾﮭﺎ ●
26