Раздел «Язык Си».PythonList4:

Работа со списками (join, split)

строка.split

>>> '1,2,3'.split(',')
['1', '2', '3']
>>> '1,2,3'.split(',', maxsplit=1)
['1', '2,3']
>>> '1,2,,3,'.split(',')
['1', '2', '', '3', '']

>>> s = '1,2,3'
>>> s.partition(',')
('1', ',', '2,3')
>>> s.partition('z')
('1,2,3', '', '')

строка.join(последовательность строк)

>>> a = ['hi', 'ha', 'ho']
>>> '-'.join(a)
'hi-ha-ho'

Что делать, если нужно напечатать список чисел? Сделать из них строки!

>>> a = [1, 2, 3]
>>> '='.join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found
>>> '='.join(map(str, a))
'1=2=3'
>>> 'abc'.join(map(str, a))
'1abc2abc3'

строка.find(подстрока)

Индекс начала подстроки в строке, (иначе проверяем как 'el' in 'Hello')

>>> s = '1abc2abc3'
>>> s.find('bc')
2
>>> s.rfind('bc')
6

Задачи (Вьетнам)

Задача 1, basename

basename(path).

Дан путь. Вернуть имя файла.

>>> s = '/home-local/student/workspace/python_1y/myprog.py'
>>> basename(s)
'myprog.py'
>>> s0 = 'second.jpg'
>>> basename(s0)
'second.jpg'
>>> s1 = '/home-local/student/workspace'
>>> basename(s1)
'workspace'

Задача 2, dirname

Написать функцию dirname, которая по данному пути возвращает директорию.

>>> dirname(s)
'/home-local/student/workspace/python_1y'
>>> dirname(s0)
''
>>> dirname(s1)
'/home-local/student'
>>> s2 = '../tatyderb/hello.py'
>>> dirname(s2)
'../tatyderb'

Задача 3, splitext

Написать функцию splitext, которая возвращает список из имени файла и его расширения

>>> splitext(s)
('/home-local/student/workspace/python_1y/myprog', '.py')
>>> splitext(s0)
('second', '.jpg')
>>> splitext(s1)
('/home-local/student/workspace', '')
>>> splitext(s2)
('../tatyderb/hello', '.py')

Дополнительно: если имя файла начинается с точки, то это имя файла, а не расширение:

>>> splitext('.config')
('.config', '')

Задача 4, resolve

Нужно соединить 2 пути.

>>> resolve('/home-local/student/', 'workspace')
/home-local/student/workspace
>>> resolve('/home-local/student', 'workspace')
/home-local/student/workspace
>>> resolve('/home-local/student/workspace/ivan', '../lee')
/home-local/student/workspace/lee
>>> resolve('/home-local/student', './lee')
/home-local/student/lee

Задача 5

Задачи (Мьянма)

Задача 1. h.e.l.l.o

Написать функцию points, которая между всеми символами ставит точку.

Сделать из строки список строк по 1 символу:

>>> s = 'hello'
>>> list(s)
['h', 'e', 'l', 'l', 'o']

Надо сделать:

s = 'hello'
s1 = points(s)
print(s1)      # h.e.l.l.o

Задача 2 с вариантами.

Есть список с данными о купленных фруктах. Нужно прочитать эти данные и найти сколько килограмм весят все фрукты.

Вариант 0

4
apple 5
orange 3.5
grapes 1.2
apple 7

Ответ: 16.7

Дополнительно: найти сколько apple. Ответ: 5+7 = 12

Вариант 1

4
apple-5
orange-3.5
grapes-1.2
apple-7

Дополнительно: найти самое большое число (сколько весит самый большой ящик).

Вариант 2

4
5=apple
3.5=orange
1.2=grapes
7=apple

Дополнительно: сколько строк содержит apples.

Вариант 3

4
1/apple/5
2/orange/3.5
3/grapes/1.2
4/apple/7

Дополнительно: Кого больше - orange или grapes.

Напечатать orange, если больше orange, чем grapes.

Напечатать grapes, если больше grapes, чем orange.

Вариант 4

4
apple 5*2
orange 3.5*1
grapes 1.2*3
apple 7*1

Дополнительно: найти самое большое число (сколько весит самый большой ящик).

Вариант 1

Вариант 1

Вариант 1

Вариант 1