Главная страница
Навигация по странице:

  • Минималды және максималды мәндер

  • Тізімнің бір бөлігін көшіру

  • ГЛАВА 2, 3, 4, 5. 2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе


    Скачать 242.51 Kb.
    Название2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе
    Дата07.02.2022
    Размер242.51 Kb.
    Формат файлаdocx
    Имя файлаГЛАВА 2, 3, 4, 5.docx
    ТипДокументы
    #354527
    страница5 из 10
    1   2   3   4   5   6   7   8   9   10

    3 ТАРАУ

    Тізімдер, түйіндер және сөздіктер

    Тізім

    Деректер жиынтығымен жұмыс істеу үшін Python тізімдер, түйіндер және сөздіктер сияқты кіріктірілген түрлерін ұсынады.
    Тізім (тізім) элементтер жиынтығын немесе реттілігін сақтайтын деректер түрін білдіреді. Төртбұрышты жақшада ([]) тізімді құру үшін оның барлық элементтері үтір арқылы тізімделеді. Көптеген бағдарламалау тілдерінде массив деп аталатын ұқсас мәліметтер құрылымы бар. Мысалы, сандар тізімін анықтаңыз:

    1

    numbers = [1, 2, 3, 4, 5]


    Сондай-ақ, тізімді құру үшін list конструкторын пайдалануға болады():

    1

    2

    numbers1 = []

    numbers2 = list()


    Бұл тізім анықтамаларының екеуі де ұқсас-олар бос тізімді жасайды.
    Тізімді құру үшін list конструкторы басқа тізімді қабылдай алады:

    1

    2

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

    numbers2 = list(numbers)


    Тізім элементтеріне жүгіну үшін тізімдегі Элемент нөмірін білдіретін индекстерді пайдалану керек. Индекстер нөлден басталады. Яғни, екінші элементте 1 индексі болады. Элементтерге қол жеткізу үшін -1-ден бастап теріс индекстерді қолдануға болады. Яғни, соңғы элементте -1 индексі, соңғы - -2 және т.б. болады.

    1

    2

    3

    4

    5

    6

    7

    numbers = [1, 2, 3, 4, 5]

    print(numbers[0])   # 1

    print(numbers[2])   # 3

    print(numbers[-3])  # 3

     

    numbers[0] = 125  # изменяем первый элемент списка

    print(numbers[0])   # 125


    Егер сіз бірдей мәнді бірнеше рет қайталайтын тізімді жасауыңыз керек болса, онда жұлдызша *таңбасын пайдалануға болады. Мысалы, алты бестен тұратын тізімді анықтаңыз:


    1

    2

    numbers = [5] * 6  # [5, 5, 5, 5, 5, 5]

    print(numbers)


    Сонымен қатар, егер бізге сандардың дәйекті тізімі қажет болса, оны жасау үшін үш пішінді range функциясын қолдану ыңғайлы:


    • range (end): 0-ден end санына дейінгі сандар жиынтығы жасалады

    • range( start, end): start санынан end санына дейінгі сандар жиынтығы жасалады

    • range( start, end, step): start санынан бастап, қадаммен аяқталатын санға дейінгі сандар жиынтығы жасалады

    1

    2

    3

    4

    5

    6

    numbers = list(range(10))

    print(numbers)      # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    numbers = list(range(2, 10))

    print(numbers)      # [2, 3, 4, 5, 6, 7, 8, 9]

    numbers = list(range(10, 2, -2))

    print(numbers)      # [10, 8, 6, 4]


    Мысалы, тізімнің келесі екі анықтамасы ұқсас болады, бірақ range функциясы арқылы біз код көлемін азайтамыз:

    1

    2

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

    numbers2 = list(range(1, 10))


    Тізімде тек бірдей нысандар болуы міндетті емес. Біз бір уақытта бір тізімге жолдарды, сандарды, басқа деректер түрлерінің нысандарын орналастыра аламыз:

    1

    objects = [1, 2.6, "Hello", True]


    Элементтердің үстінен қайталау

    Элементтерді санау үшін Сіз циклді де, циклді де қолдана аласыз.
    Цикл арқылы санау:

    1

    2

    3

    companies = ["Microsoft", "Google", "Oracle", "Apple"]

    for item in companies:

        print(item)


    Мұнда range функциясының орнына біз қол жетімді компаниялар тізімін бірден алмастыра аламыз.
    While циклі арқылы сұрыптау:


    1

    2

    3

    4

    5

    companies = ["Microsoft", "Google", "Oracle", "Apple"]

    i = 0

    while i < len(companies):

        print(companies[i])

        i += 1


    Len () функциясын пайдаланып санау үшін біз тізімнің ұзындығын аламыз. Есептегішті пайдаланып, мен санауыштың мәні тізімнің ұзындығына тең болғанша элементті шығарады.
    Тізімдерді салыстыру

    Екі тізім бірдей элементтер жиынтығын қамтыса, тең деп саналады:

    1

    2

    3

    4

    5

    6

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

    numbers2 = list(range(1,10))

    if numbers == numbers2:

        print("numbers equal to numbers2")

    else:

        print("numbers is not equal to numbers2")


    Бұл жағдайда екі тізім де тең болады.
    Тізімдермен жұмыс істеу әдістері мен функциялары

    Элементтерді басқару үшін тізімдерде бірқатар әдістер бар. Олардың кейбіреулері:


    • append(item): item элементін тізімнің соңына қосады

    • insert (index, item): index индексінің тізіміне item элементін қосады

    • remove(item) : item элементін жояды. Элементтің Бірінші енгізуі ғана жойылады. Егер элемент табылмаса, ValueError ерекшелік жасайды

    • clear (): тізімнен барлық элементтерді жою

    • index(item): item элементінің индексін қайтарады. Егер элемент табылмаса, ValueError ерекшелік жасайды

    • pop ([index]): index индексі бойынша элементті жояды және қайтарады. Егер индекс берілмесе, онда ол соңғы элементті жояды.

    • count (item): item элементінің пайда болу санын тізімге қайтарады

    • sort ([key]): элементтерді сұрыптайды. Әдепкі бойынша өсу бойынша сұрыптайды. Бірақ key параметрімен сұрыптау функциясын бере аламыз.

    • reverse (): тізімдегі барлық элементтерді кері ретпен орналастырады


    Сонымен қатар, Python тізімдермен жұмыс істеу үшін бірқатар кіріктірілген функцияларды ұсынады:

    • len (тізім): тізімнің ұзындығын қайтарады

    • sortired (тізім, [key]): сұрыпталған тізімді қайтарады

    • min (тізім): тізімнің ең кіші элементін қайтарады

    • max (list): тізімнің ең үлкен элементін қайтарады


    Элементтерді қосу және жою

    Элементті қосу үшін append() және insert әдістері қолданылады, ал жою үшін remove(), pop() және clear () әдістері қолданылады.
    Әдістерін пайдалану:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    users = ["Tom", "Bob"]

     

    # добавляем в конец списка

    users.append("Alice")  # ["Tom", "Bob", "Alice"]

    # добавляем на вторую позицию

    users.insert(1, "Bill")          # ["Tom", "Bill", "Bob", "Alice"]

     

    # получаем индекс элемента

    i = users.index("Tom")

    # удаляем по этому индексу

    removed_item = users.pop(i)            # ["Bill", "Bob", "Alice"]

     

    last_user = users[-1]

    # удаляем последний элемент

    users.remove(last_user)           # ["Bill", "Bob"]

     

    print(users)

     

    # удаляем все элементы

    users.clear()


    Элементтің болуын тексеру

    Егер белгілі бір элемент табылмаса, remove және index әдістері ерекше жағдай туғызады. Мұндай жағдайды болдырмау үшін, элементпен жұмыс жасамас бұрын, оның бар-жоғын in кілт сөзімен тексеруге болады:

    1

    2

    3

    4

    5

    6

    companies = ["Microsoft", "Google", "Oracle", "Apple"]

    item = "Oracle"  # элемент для удаления

    if item in companies:

        companies.remove(item)

     

    print(companies)


    Элементтер ішіндегі өрнек егер элементтер элементтер тізімінде болса, ШЫН мәнін қайтарады. Сондықтан, if item in companies дизайны тізімде элементтің болуына байланысты келесі нұсқаулар блогын орындай алады.
    Оқиғаларды есептеу

    Егер тізімде осы немесе басқа элемент қанша рет бар екенін білу қажет болса, count() әдісін қолдануға болады:

    1

    2

    3

    4

    users = ["Tom", "Bob", "Alice", "Tom", "Bill", "Tom"]

     

    users_count = users.count("Tom")

    print(users_count)      # 3


    Сұрыптау

    Өсу бойынша сұрыптау үшін sort() әдісі қолданылады:

    1

    2

    3

    4

    users = ["Tom", "Bob", "Alice", "Sam", "Bill"]

     

    users.sort()

    print(users)      # ["Alice", "Bill", "Bob", "Sam", "Tom"]


    Егер деректерді кері ретпен сұрыптау қажет болса, сұрыпталғаннан кейін reverse() әдісін қолдана аламыз:

    1

    2

    3

    4

    5

    users = ["Tom", "Bob", "Alice", "Sam", "Bill"]

     

    users.sort()

    users.reverse()

    print(users)      # ["Tom", "Sam", "Bob", "Bill", "Alice"]


    Сұрыптау кезінде іс жүзінде екі объект салыстырылады және олардың қайсысы "кішірек", "үлкенірек"алдына қойылады. "Көбірек" және "аз" ұғымдары өте шартты. Егер сандар үшін бәрі қарапайым болса-сандар өсу ретімен реттелген болса, онда жолдар мен басқа нысандар үшін жағдай күрделірек. Атап айтқанда, жолдар бірінші таңбалар бойынша бағаланады. Егер бірінші таңбалар тең болса, екінші таңбалар және т.б. бағаланады. Сандық таңба алфавиттік бас таңбадан гөрі "аз" деп саналады, ал бас таңба кіші әріптен кіші болып саналады. Жолдарды салыстыру туралы толығырақ мақалада жолдармен операциялар сипатталған.
    Осылайша, егер тізім жоғарғы және төменгі регистрдегі жолдарды біріктірсе, онда біз дұрыс емес нәтижелерге қол жеткізе аламыз, өйткені біз үшін "bob" жолы "Tom"жолына дейін тұруы керек. Стандартты сұрыптау әрекетін өзгерту үшін функция параметрі ретінде sort () әдісіне өтуге болады:

    1

    2

    3

    4

    users = ["Tom", "bob", "alice", "Sam", "Bill"]

     

    users.sort(key=str.lower)

    print(users)      # ["alice", "Bill", "bob", "Sam", "Tom"]


    Сұрыптау әдісінен басқа, біз екі формасы бар кірістірілген sorted функциясын қолдана аламыз:

    • sorted (list): list тізімін сұрыптайды

    • sorted (list, key): list тізімін элементтерге key функциясын қолдану арқылы сұрыптайды

    1

    2

    3

    4

    users = ["Tom", "bob", "alice", "Sam", "Bill"]

     

    sorted_users = sorted(users, key=str.lower)

    print(sorted_users)      # ["alice", "Bill", "bob", "Sam", "Tom"]


    Бұл функцияны пайдалану кезінде бұл функция сұрыпталған тізімді өзгертпейтінін және барлық сұрыпталған элементтерді нәтиже ретінде қайтарылатын жаңа тізімге енгізетінін ескеру қажет.
    Минималды және максималды мәндер

    Кірістірілген Python min() және max () функциялары сәйкесінше минималды және максималды мәндерді табуға мүмкіндік береді:

    1

    2

    3

    numbers = [9, 21, 12, 1, 3, 15, 18]

    print(min(numbers))     # 1

    print(max(numbers))     # 21


    Тізімдерді көшіру

    Тізімдерді көшіру кезінде тізімдер өзгеретін (өзгеретін) түрді білдіретінін ескеру керек, сондықтан егер екі айнымалы да бірдей тізімді көрсетсе, онда бір айнымалының өзгеруі басқа айнымалыға да әсер етеді:

    1

    2

    3

    4

    5

    6

    users1 = ["Tom", "Bob", "Alice"]

    users2 = users1

    users2.append("Sam")

    # users1 и users2 указывают на один и тот же список

    print(users1)   # ["Tom", "Bob", "Alice", "Sam"]

    print(users2)   # ["Tom", "Bob", "Alice", "Sam"]


    Бұл "беттік көшіру" деп аталады (shallow copy). Әдетте, мұндай мінез-құлық жағымсыз. Элементтерді көшіру үшін, бірақ сонымен бірге айнымалылар әртүрлі тізімдерді көрсетсе, терең көшіру керек (терең көшіру). Ол үшін кірістірілген copy модулінде анықталған deepcopy () әдісін қолдануға болады:

    1

    2

    3

    4

    5

    6

    7

    8

    import copy

     

    users1 = ["Tom", "Bob", "Alice"]

    users2 = copy.deepcopy(users1)

    users2.append("Sam")

    # пееменные users1 и users2 указывают на разные списки

    print(users1)   # ["Tom", "Bob", "Alice"]

    print(users2)   # ["Tom", "Bob", "Alice", "Sam"]


    Тізімнің бір бөлігін көшіру

    Егер сіз бүкіл тізімді емес, оның белгілі бір бөлігін ғана көшіруіңіз керек болса, онда біз арнайы синтаксисті қолдана аламыз. ол келесі нысандарды қабылдай алады:


    • list [: end]: end параметрі арқылы тізім көшірілетін элемент индексі беріледі

    • list [start: end]: start параметрі элементтерді көшіру керек элементтің индексін көрсетеді

    • list [start: end : step]: step параметрі элементтер тізімнен көшірілетін қадамды көрсетеді. Әдепкі бойынша, бұл параметр 1-ге тең.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    users = ["Tom", "Bob", "Alice", "Sam", "Tim", "Bill"]

     

    slice_users1 = users[:3]   # с 0 по 3

    print(slice_users1)   # ["Tom", "Bob", "Alice"]

     

    slice_users2 = users[1:3]   # с 1 по 3

    print(slice_users2)   # ["Bob", "Alice"]

     

    slice_users3 = users[1:6:2]   # с 1 по 6 с шагом 2

    print(slice_users3)   # ["Bob", "Sam", "Bill"]


    Тізімдерді қосу

    Тізімдерді біріктіру үшін қосу операциясы қолданылады (+):

    1

    2

    3

    4

    users1 = ["Tom", "Bob", "Alice"]

    users2 = ["Tom", "Sam", "Tim", "Bill"]

    users3 = users1 + users2

    print(users3)   # ["Tom", "Bob", "Alice", "Tom", "Sam", "Tim", "Bill"]


    Тізімдер тізімі

    Тізімдер стандартты жолдар, сандар сияқты деректерден басқа, басқа тізімдерді де қамтуы мүмкін. Мұндай тізімдерді кірістірілген тізімдер жолдар ретінде әрекет ететін кестелермен байланыстыруға болады. Мысалы:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    users = [

        ["Tom", 29],

        ["Alice", 33],

        ["Bob", 27]

    ]

     

    print(users[0])         # ["Tom", 29]

    print(users[0][0])      # Tom

    print(users[0][1])      # 29


    Кірістірілген тізім элементіне жүгіну үшін бірнеше индекстерді пайдалану керек: users [0][1] - бірінші кірістірілген тізімнің екінші элементіне жүгіну.
    Жалпы тізімді, сондай-ақ кірістірілген тізімдерді қосу, жою және өзгерту әдеттегі (бір өлшемді) тізімдерге ұқсас:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    users = [

        ["Tom", 29],

        ["Alice", 33],

        ["Bob", 27]

    ]

     

    # создание вложенного списка

    user = list()

    user.append("Bill")

    user.append(41)

    # добавление вложенного списка

    users.append(user)

     

    print(users[-1])         # ["Bill", 41]

     

    # добавление во вложенный список

    users[-1].append("+79876543210")

     

    print(users[-1])         # ["Bill", 41, "+79876543210"]

     

    # удаление последнего элемента из вложенного списка

    users[-1].pop()

    print(users[-1])         # ["Bill", 41]

     

    # удаление всего последнего вложенного списка

    users.pop(-1)

     

    # изменение первого элемента

    users[0] = ["Sam", 18]

    print(users)            # [ ["Sam", 18], ["Alice", 33], ["Bob", 27]]


    Ішкі тізімдерді санау:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    users = [

        ["Tom", 29],

        ["Alice", 33],

        ["Bob", 27]

    ]

     

    for user in users:

        for item in user:

            print(item, end=" | ")


    Консольді шығару:
    Tom | 29 | Alice | 33 | Bob | 27 |
    1   2   3   4   5   6   7   8   9   10


    написать администратору сайта