Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Оператор побудови зрізу списку працює подібно, як і зі стрічками:
>>> list = ['a', 'b', 'c', 'd', 'e', 'f']
>>> list[1:3]
['b', 'c']
>>> list[:4]
['a', 'b', 'c', 'd']
>>> list[3:]
['d', 'e', 'f']
>>> list[:]
['a', 'b', 'c', 'd', 'e', 'f']
Єдина відмінність полягає в тому, що елементи списків (на відміну від символів стрічок) можна змінювати:
>>> numbers[1]= 5
>>> numbers
[17, 5, 537]
>>> numbers[1:]= [6, 7]
>>> numbers
[17, 6, 7]
>>> numbers[0], numbers[2]= 1, 2
>>> numbers
[1, 6, 2]
3.4. Довжина списку
Неважко здогадатися, що для обчислення довжини списку можна використати функцію len(). Зверніть увагу, що якщо список містить як елемент інший список, то цей вкладений список вважатиметься як один елемент. Це видно з наступного прикладу:
>>> mylist = [[1, 'one'], [2, 'two'], [3, 'three'], 'four', 5]
>>> len(mylist)
5
3.5. Додатково про списки
Метод — це функція, що "належить" об'єкту, викликається як obj. methodname, де obj — об'єкт (або вираз, що його визначає) і methodname — ім'я методу, визначеного для даного типу об'єктів. Різні типи мають різні набори методів. Методи різних типів можуть мати однакові імена, не приводячи до невизначеності.
Списковий тип даних має декілька методів. Всі вони приведені нижче:
insert (i, x) | Вставляє елемент в задану позицію. Перший аргумент - індекс елементу, перед яким проводиться вставка. Наприклад, а. insert(0,x) вставить в початок списку, а а. insert(len(a),x) додасть елемент до кінця списку. |
append (x) | Додає елемент до кінця списку. |
index (x) | Повертає індекс першого елементу списку, значення якого рівне x. Якщо такого елементу немає, то виникне помилка. |
remove (x) | Видаляє із списку перший елемент, рівний x. У разі його відсутності також виникне помилка. |
sort () | Сортує елементи списку. |
reverse () | Записує елементи списку в зворотному порядку. |
count (x) | Повертає кількість елементів списку, рівних x |
extend(L) | Додає до кінця списку всі елементи списку L. |
pop(i) | Повертає елемент з індексом i і вилучає його зі списку. Якщо функція pop() задається без параметрів, то буде повернено і вилучено останній елемент списку. |
Ось приклади, що використовують методи списків:
>>> phrase=['red', 'green', 'blue', 'yellow']
>>> phrase. insert(1,'black')
>>> phrase
['red', 'black', 'green', 'blue', 'yellow']
>>> phrase. append('black')
>>> phrase
['red', 'black', 'green', 'blue', 'yellow', 'black']
>>> phrase. count('black')
2
>>> phrase. index('black')
1
>>> phrase. remove('black')
>>> phrase
['red', 'green', 'blue', 'yellow', 'black']
>>> phrase. sort()
>>> phrase
['black', 'blue', 'green', 'red', 'yellow']
>>> phrase. reverse()
>>> phrase
['yellow', 'red', 'green', 'blue', 'black']
>>>
>>> phrase1=[10,20,30,40]
>>> phrase. extend(phrase1)
>>> phrase
['yellow', 'red', 'green', 'blue', 'black', 10, 20, 30, 40]
>>> phrase. pop(0)
'yellow'
>>> phrase
['red', 'green', 'blue', 'black', 10, 20, 30, 40]
3.6. Оператор del
Існує спосіб видалення елементу із списку шляхом завдання індексу елементу, а не його значення: оператор del. Він також дозволяє видаляти цілі шматки із списку (що ми і раніше робили, привласнюючи шматку порожній список). Наприклад:
>>> phrase=['yellow', 'red', 'green', 'blue', 'black']
>>> phrase
['yellow', 'red', 'green', 'blue', 'black']
>>> del phrase[2]
>>> phrase
['yellow', 'red', 'blue', 'black']
>>> del phrase[:2]
>>> phrase
['blue', 'black']
del можна ще використовувати для видалення цілої змінної:
>>> del phrase
>>> phrase
Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
phrase
NameError: name 'phrase' is not defined
Тепер посилання на ім'я а приведе до помилки (принаймні, поки йому не привласнимо нового значення).
4. Кортежі
Як можна було побачити раніше, списки і стрічки мають багато загальних властивостей, таких як індексація і зрізи. Вони є прикладами типів даних "послідовність". Існує ще один стандартний тип даних послідовності: кортеж.
Кортеж складається з множини значень, що розділені комами, наприклад:
>>> t = 12345, 54321, 'Привіт!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>> # Кортежі так само можуть бути вкладеними:
... u = t (1, 2, 3, 4, 5)
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
Вміст кортежів завжди поміщається в круглі дужки, для того, щоб вкладені кортежі інтерпретувалися правильно; вони можуть бути введені як з, так і без навколишніх круглих дужок, хоча часто круглі дужки необхідні так чи інакше (особливо, якщо кортеж - частина більшого виразу).
Кортежі використовуються дуже часто. Наприклад: (x, у) - координати в парі, запис в базі даних тощо. Кортежі, подібно до рядків, є незмінними: неможливо змінити окремі елементи кортежу. Можна створювати кортежі, які містять змінні об'єкти, на подобі списків.
Порожні кортежі створюються парою круглих дужок без всяких елементів; кортеж з одним елементом створюється одним значенням з комою після нього (недостатньо включити одне значення в круглі дужки). Наприклад:
>>> kortez_0=()
>>> type(kortez_0)
<type 'tuple'>
>>> len(kortez_0)
0
>>> kortez_1='hello',
>>> type(kortez_1)
<type 'tuple'>
>>> len(kortez_1)
1
>>> kortez_2='by',0
>>> type(kortez_2)
<type 'tuple'>
>>> len(kortez_2)
2
Інструкція kortez_2='by',0 є типовим прикладом упаковки кортежу: значення 'by' і 0 упаковані в одному кортежі. Також можлива операція розпаковування кортежу:
>>> x, y=kortez_2
>>> x
'by'
>>> y
0
Цієї операції достатньо, щоб розпакувати послідовність. Послідовність, що підлягає розпаковуванню вимагає списку змінних зліва, щоб кількість елементів зліва збігалася з довжиною послідовності. Зверніть увагу, що множинне призначення - дійсно тільки для комбінації упаковки кортежу і його розпаковування!
Тут також слід зазначити маленьку асиметрію упаковки і розпаковування кортежів: упаковка кількох значень завжди створює кортеж, в результаті роботи розпаковування може бути будь-яка послідовність.
5. Набори
Python використовує такий тип даних як набори.
Набір - це неврегульована колекція значень без дублікатів елементів.
Основне використання полягає у тестуванні вмісту і усунення подвійних значень. Набори також підтримують математичні операції такі як, об'єднання, перетинання, порівняння, і симетричне порівняння.
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruit = set(basket) # створення набору без дублікатів
>>> fruit
set(['orange', 'pear', 'apple', 'banana'])
>>> 'orange' in fruit # швидке тестування вмісту
True
>>> 'crabgrass' in fruit
False
>>> # Демонструє операції над набором і наявність символів у вмісті набору
...
>>> а = set('abracadabra')
>>> b = set('alacazam')
>>> а # які унікальні символи є в а
set(['a', 'r', 'b', 'c', 'd'])
>>> а – b # символи в а, але що не входять в b
set(['r', 'd', 'b'])
>>> а | b # символи, що містяться в а або b
set(['a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'])
>>> а & b # символи містяться і в а, і в b
set(['a', 'c'])
>>> а ^ b # символи містяться в а або в b, але не в обох словах
set(['r', 'd', 'b', 'm', 'z', 'l'])
Додаток А
Сьогодні ми вивчили:
· Типи даних: стрічка, список, кортеж.
· Методи роботи зі стрічкою та списком.
Методи роботи зі стрічками
Метод | Пояснення |
s. find(t) | Індекс першого знайденого елемента t стрічки s (-1 якщо не знайдено) |
s. rfind(t) | Індекс останнього знайденого елемента t стрічки s (-1 якщо не знайдено) |
s. index(t) | Аналогічно до s. find(t)але повертає ValueError якщо не знайдено |
s. rindex(t) | Аналогічно до s. rfind(t) але повертає ValueError якщо не знайдено |
s. join(text) | Об’єднання стрічок в одну стрічку використовуючи s як символ поєднання |
s. split(t) | Перетворення s на список де t – розділювач стрічок (пробіл по замовчуванню) |
s. splitlines() | split s into a list of strings, one per line |
s. lower() | Перетворення всіх літер в s на малі літери |
s. upper() | Перетворення всіх літер в s на великі літери |
s. title() | Перетворення першої літери s на велику |
s. strip() | Створення копії s без пробідів на початку і в кінці стрічки |
s. replace(t, u) | Заміна елемента t на u в стічці s |
Методи роботи зі списками
Метод | Пояснення |
s. insert (i, t) | Вставляє елемент в задану позицію. Перший аргумент - індекс елементу, перед яким проводиться вставка. Наприклад, s. insert(0,t) вставить на початок списку, а s. insert(len(s),t) додасть елемент до кінця списку. |
s. append (t) | Додавання елемента t до списку s |
s. index (t) | Визначення індексу елемента t списку s |
s. remove (t) | Вилучає із списку перший елемент, що збігається з t. У разі його відсутності виникає помилка. |
s. sort () | Сортування елементів списку s за абеткою |
s. reverse () | Записує елементи списку в зворотному порядку. |
s. count (t) | Повертає кількість елементів списку, що збігаються з фрагментом t |
s. extend(L) | Додає до кінця списку s всі елементи списку L. |
s. pop(i) | Повертає елемент з індексом i і вилучає його зі списку. Якщо функція pop() задається без параметрів, то буде повернено і вилучено останній елемент списку. |
Порядок виконання роботи
1. Ознайомитися з теоретичними відомостями.
2. Виконати приклади, які використовуються в теоретичних відомостях.
3. Виконати наступні вправи згідно варіанта індивідуального завдання (Таблиця1.).
1. Створити змінну msg присвоїти їй значення стрічки, яка відповідає імені та прізвищу студента.
2. Роздрукувати вміст змінної msg двома шляхами, перший набравши назву змінної в інтерпретаторі, другий - використавши команду print.
3. Здійснити арифметичні операції зі стрічкою msg.
4. Визначити нову стрічку hello. Здійснити операцію hello+ msg. Змінити стрічку hello додавши в її кінці символ пробілу і знову виконати операцію hello+ msg.
5. Використовуючи зрізи та операцію поєднання змінити стрічку msg до вигляду ім’я, по батькові, прізвище студента.
6. Визначити стрічку s=’colorless’. Використовуючи зрізи та операцію поєднання змінити стрічку до вигляду ‘colourless’.
7. Використовуючи зрізи видаліть афікси у наступних словоформах: dish-es, run-ning, nation-ality, un-do, pre-heat.
8. Спробуйте згенерувати IndexError доступаючись до символів стрічки з індексами менше 0.
9. Організуйте доступ до елементів стрічки з визначеним кроком. Результати поясніть.
10. Поясніть результат виконання msg[::-1].
11. Представити прізвище, ім’я та по батькові як список стрічок. Здійснити різноманітні операції індексування, сортування та зрізів. Реалізуйте операцію доступу до окремих елементів списку та операцій з ними.
12. Представити прізвище, ім’я та по батькові як список стрічок. Розділити речення на окремі елементи, межа розділу голосна буква.
13. Представити прізвище, ім’я та по батькові як список стрічок. Використовуючи метод. reverse() та зріз [::-1] змінити стрічку. Результати пояснити.
14. Напишіть for цикл, який виведе на екран символи стрічки msg по одному на рядок.
15. Створити список phrase1, який складається із значень ім’я, по батькові, прізвище студента. Що відбудеться при спробі ввести в інтерпретатор наступний оператор phrase1[2][2]. Поясніть результат.
16. Створити змінну words яка містить список слів. Дослідіть операції words. sort() і sorted(words).
17. Створіть файл test. py, який містить стрічку msg. Використайте наступні оператори і поясніть отримані результати.
>>> from test import msg
>>> msg
18. Напишіть for цикл, який обробить phrase1 визначивши довжину кожного елементу і результати збереже в новому списку lengths. (Створіть пустий список lengths = []. Далі використовуйте метод append() в тілі циклу для додавання довжин до списку).
19. Перетворіть стрічку msg на список стрічок, кожна з яких відповідає одному слову використовуючи split() оператор без символа розділення та наступними символами розділення: подвійні лапки, табуляція, послідовність пробілів, послідовність табуляцій та пробілів.
20. Визначіть змінну silly, яка буде містити стрічку ’newly formed bland ideas are inexpressible in an infuriating way’ і напишіть програму перетворення стрічки на список стрічок (кожне слово окрема стрічка). Результати збережіть в змінній bland.
21. Напишіть програму, яка створить стрічку в якій будуть записані другі символи всіх слів з стрічки silly.
22. Напишіть програму перетворення списку стрічок в одну стрічку.
23. Напишіть програму, яка надрукує слова із стрічки silly за абеткою.
24. Використайте функцію index() наступним чином ’inexpressible’.index(’e’). Що станеться якщо виконати ’inexpressible’.index(’re’)
25. Визначіть позиції всіх слів в списку phrase1 використовуючи метод index().
26. Визначіть змінну silly, яка буде містити стрічку ’newly formed bland ideas are inexpressible in an infuriating way’ і напишіть програму її перетворення в список phrase, який буде містити всі слова silly крім ‘in’.
4. Підготувати і оформити звіт.
Варіанти завдань
Варіант | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Номери завдань | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 1 | 2 | 3 |
5 | 6 | 7 | 8 | 9 | 10 | 5 | 6 | 7 | 8 | 9 | 10 | 5 | 6 | 7 | |
8 | 9 | 10 | 5 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | 7 | 8 | 9 | 10 | |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
14 | 15 | 16 | 17 | 18 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 11 | 12 | 13 | |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 21 | 22 | 23 | 24 | 25 | 26 | 22 | |
22 | 23 | 24 | 25 | 26 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 22 | 23 |
Варіант | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
Номери завдань | 4 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 1 | 2 |
8 | 9 | 10 | 5 | 6 | 7 | 8 | 9 | 10 | 5 | 6 | 7 | 8 | 9 | 10 | |
9 | 10 | 5 | 6 | 7 | 5 | 6 | 7 | 8 | 9 | 10 | 5 | 6 | 7 | 8 | |
18 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 11 | 12 | 13 | 14 | 15 | 16 | |
14 | 15 | 16 | 17 | 18 | 16 | 17 | 18 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
23 | 24 | 25 | 26 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 23 | 24 | 25 | |
24 | 25 | 26 | 19 | 20 | 21 | 25 | 26 | 19 | 20 | 21 | 22 | 23 | 24 | 19 |
Зміст звіту
1. Титульний аркуш.
2. Мета роботи.
3. Короткі теоретичні відомості.
4. Тексти програм на мові Python.
5. Висновок.
Література
1. Steven Bird, Ewan Klein, Edward Loper Introduction to Natural Language Processing. University of Pennsylvania.
2. Г. Россум, Ф. Л.Дж. Дрейк, , М. Задка, М. Левис, С. Монтаро, , М.-А. Лембург, К.-П. Йи, Д. Ксиллаг, , Дж. К.Ахлстром, Дж. Рокинд, Н. Шеменон, С. Мулендер. Язык программирования Python./ 2001 – 452c.
3. Сузи программирования Python.- 206с.
4. David Mertz Text Processing in Python Addison WesleyBiber, 2
Інтернет посилання
· http://www. nltk. org
· http://python. org
Романюк Андрій Богданович, Юрчак Ірина Юріївна
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 1
з дисципліни «Комп’ютерна лінгвістика»
для студентів спеціальності 7. «Прикладна лінгвістика»
денної та заочної форм навчання
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 |


