Test Engineering Notes
3.81K subscribers
177 photos
2 videos
648 links
Україномовний канал про технічні аспекти тестування, розподілені системи, блокчейн.

Консультації з автоматизації, менторинг, тестові співбесіди - @al8xr
Download Telegram
Корисні "трюки" в Python

#python #tricks

Сьогодні дозвольте поділитись прикладами трюків з книги "Python One-Liners".
Користуйтесь ними для навчання, або будьте готові отримати шось подібне на співбесіді (зустрічав таке).

1. У вас є строка з багатьма рядками. Перетворіть її на масив масивів слів в кожному рядку, якщо слово має більше трьох літер.
text = '''Call me Ishmael. Some years ago - never mind how long precisely - having  
little or no money in my purse, and nothing particular to interest me
on shore, I thought I would sail about a little and see the watery part
of the world. It is a way I have of driving off the spleen, and regulating
the circulation. - Moby Dick'''


Очікуваний результат:
[['Call', 'Ishmael.', 'Some', 'years', 'never', 'mind', 'long', 'precisely', 'having'], ['little', 'money', 'purse,', 'nothing', 'particular', 'interest'], ['shore,', 'thought', 'would', 'sail', 'about', 'little', 'watery', 'part'], ['world.', 'have', 'driving', 'spleen,', 'regulating'], ['circulation.', 'Moby', 'Dick']]


Рішення:
w = [[x for x in line.split() if len(x)>3] for line in text.split('\n')]


2. Прочитайте файл, видаліть для кожного строки непотрібні пробіли та збережіть це все в лист.

Рішення:
print([line.strip() for line in open("readFile.py")])


3. Маючи словник з даними щодо компаній та заробітних плат співробітників, поверніть список компаній, що платять менше ніж 9$ на годину.

companies = {  
    'CoolCompany' : {'Alice' : 33, 'Bob' : 28, 'Frank' : 29},
    'CheapCompany' : {'Ann' : 4, 'Lee' : 9, 'Chrisi' : 7},
    'SosoCompany' : {'Esther' : 38, 'Cole' : 8, 'Paris' : 18}
}


Рішення:
illegal = [x for x in companies if any(y<9 for y in companies[x].values())]


P.S. Трюки корисні, коли ви та ваші колеги розумієте як вони працюють.
18