PRO_PYTHON_CODE Telegram 1072
πŸ–₯ Руководство ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Python itertools

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ itertools?
Itertools β€Šβ€” это Python-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ своим элСмСнтам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ список, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. Itertools позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ объСдинСниС.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Itertools прСдоставляСт нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ itertools.

1. permutations(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ пСрСстановки ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ располоТСниСм элСмСнтов Π² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅.

Π’Π²ΠΎΠ΄:

import itertools

letters = ['a', 'b', 'c']
perms = itertools.permutations(letters)

for perm in perms:
print(perm)
Π’Ρ‹Π²ΠΎΠ΄:

('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
2. combinations(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ элСмСнтов Π² ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π½Π΅ повторяя Π² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ. Если ΡƒΠΊΠ°Π·Π°Π½ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ r, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ r.

Π’Π²ΠΎΠ΄:

import itertools

numbers = [1, 2, 3, 4]
combs = itertools.combinations(numbers, 2)

for comb in combs:
print(comb)
Π’Ρ‹Π²ΠΎΠ΄:

(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)

3. product(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ содСрТит ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… формируСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если ΡƒΠΊΠ°Π·Π°Π½ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ repeat, Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

Π’Π²ΠΎΠ΄:

import itertools

colors = ['red', 'green', 'blue']
sizes = ['small', 'medium', 'large']
combos = itertools.product(colors, sizes)

for combo in combos:
print(combo)
Π’Ρ‹Π²ΠΎΠ΄:

('red', 'small')
('red', 'medium')
('red', 'large')
('green', 'small')
('green', 'medium')
('green', 'large')
('blue', 'small')
('blue', 'medium')
('blue', 'large')

4. groupby(): эта функция Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π½Π° основС значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ key. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ содСрТит ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт β€” ΠΊΠ»ΡŽΡ‡ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎ элСмСнтам Π² Π³Ρ€ΡƒΠΏΠΏΠ΅.

Π’Π²ΠΎΠ΄:

import itertools

fruits = [{'name': 'apple', 'color': 'red'},
{'name': 'banana', 'color': 'yellow'},
{'name': 'orange', 'color': 'orange'},
{'name': 'pear', 'color': 'green'},
{'name': 'strawberry', 'color': 'red'}]

fruits.sort(key=lambda x: x['color'])

for color, group in itertools.groupby(fruits, lambda x: x['color']):
print(color)
for fruit in group:
print(fruit['name'])

Π’Ρ‹Π²ΠΎΠ΄:

green
pear
orange
orange
red
apple
strawberry
yellow
banana

5. chain(): эта функция ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняСтся ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’Π²ΠΎΠ΄:

import itertools

colors = ['red', 'green', 'blue']
sizes = ['small', 'medium', 'large']

for item in itertools.chain(colors, sizes):
print(item)
Π’Ρ‹Π²ΠΎΠ΄:

red
green
blue
small
medium
large
6. count(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, начиная с Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния ΠΈ увСличивая Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ шага.

Π’Π²ΠΎΠ΄:

import itertools

for i in itertools.count(5, 2):
print(i)
if i > 15:
break
Π’Ρ‹Π²ΠΎΠ΄:

5
7
9
11
13
15
17

7. cycle(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ элСмСнты ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈ бСсконСчно.

Π’Π²ΠΎΠ΄:

import itertools

colors = ['red', 'green', 'blue']

for color in itertools.cycle(colors):
print(color)
Π’Ρ‹Π²ΠΎΠ΄:

red
green
blue
red
green
blue
red
...

8. dropwhile(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ элСмСнты ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ функция-ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· Π²Π΅Ρ€Π½Π΅Ρ‚ False.

πŸ“ŒΠ§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘12❀4πŸ”₯2



tgoop.com/pro_python_code/1072
Create:
Last Update:

πŸ–₯ Руководство ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Python itertools

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ itertools?
Itertools β€Šβ€” это Python-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ своим элСмСнтам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ список, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. Itertools позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ объСдинСниС.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Itertools прСдоставляСт нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ itertools.

1. permutations(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ пСрСстановки ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ располоТСниСм элСмСнтов Π² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅.

Π’Π²ΠΎΠ΄:

import itertools

letters = ['a', 'b', 'c']
perms = itertools.permutations(letters)

for perm in perms:
print(perm)
Π’Ρ‹Π²ΠΎΠ΄:

('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
2. combinations(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ элСмСнтов Π² ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π½Π΅ повторяя Π² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ. Если ΡƒΠΊΠ°Π·Π°Π½ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ r, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ r.

Π’Π²ΠΎΠ΄:

import itertools

numbers = [1, 2, 3, 4]
combs = itertools.combinations(numbers, 2)

for comb in combs:
print(comb)
Π’Ρ‹Π²ΠΎΠ΄:

(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)

3. product(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ содСрТит ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… формируСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если ΡƒΠΊΠ°Π·Π°Π½ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ repeat, Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

Π’Π²ΠΎΠ΄:

import itertools

colors = ['red', 'green', 'blue']
sizes = ['small', 'medium', 'large']
combos = itertools.product(colors, sizes)

for combo in combos:
print(combo)
Π’Ρ‹Π²ΠΎΠ΄:

('red', 'small')
('red', 'medium')
('red', 'large')
('green', 'small')
('green', 'medium')
('green', 'large')
('blue', 'small')
('blue', 'medium')
('blue', 'large')

4. groupby(): эта функция Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π½Π° основС значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ key. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ содСрТит ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт β€” ΠΊΠ»ΡŽΡ‡ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎ элСмСнтам Π² Π³Ρ€ΡƒΠΏΠΏΠ΅.

Π’Π²ΠΎΠ΄:

import itertools

fruits = [{'name': 'apple', 'color': 'red'},
{'name': 'banana', 'color': 'yellow'},
{'name': 'orange', 'color': 'orange'},
{'name': 'pear', 'color': 'green'},
{'name': 'strawberry', 'color': 'red'}]

fruits.sort(key=lambda x: x['color'])

for color, group in itertools.groupby(fruits, lambda x: x['color']):
print(color)
for fruit in group:
print(fruit['name'])

Π’Ρ‹Π²ΠΎΠ΄:

green
pear
orange
orange
red
apple
strawberry
yellow
banana

5. chain(): эта функция ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняСтся ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’Π²ΠΎΠ΄:

import itertools

colors = ['red', 'green', 'blue']
sizes = ['small', 'medium', 'large']

for item in itertools.chain(colors, sizes):
print(item)
Π’Ρ‹Π²ΠΎΠ΄:

red
green
blue
small
medium
large
6. count(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, начиная с Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния ΠΈ увСличивая Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ шага.

Π’Π²ΠΎΠ΄:

import itertools

for i in itertools.count(5, 2):
print(i)
if i > 15:
break
Π’Ρ‹Π²ΠΎΠ΄:

5
7
9
11
13
15
17

7. cycle(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ элСмСнты ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈ бСсконСчно.

Π’Π²ΠΎΠ΄:

import itertools

colors = ['red', 'green', 'blue']

for color in itertools.cycle(colors):
print(color)
Π’Ρ‹Π²ΠΎΠ΄:

red
green
blue
red
green
blue
red
...

8. dropwhile(): эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ элСмСнты ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ функция-ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· Π²Π΅Ρ€Π½Π΅Ρ‚ False.

πŸ“ŒΠ§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

@pro_python_code

BY Python RU


Share with your friend now:
tgoop.com/pro_python_code/1072

View MORE
Open in Telegram


Telegram News

Date: |

So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. More>> Each account can create up to 10 public channels Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link).
from us


Telegram Python RU
FROM American