🐍🧩 5 Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Python для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ

Π—Π°Π΄Π°Ρ‡ΠΈ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹Ρ… студСнтах, сортировкС IP-адрСсов, Π³Π΅ΠΌΠ°Ρ‚Ρ€ΠΈΠΈ слов, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ списка Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ.
🐍🧩 5 Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Python для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ

1. Бписок ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹Ρ… студСнтов

Π”Π΅ΠΊΠ°Π½Ρƒ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π° Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ студСнты посСтили всС Π»Π΅ΠΊΡ†ΠΈΠΈ с Π½Π°Ρ‡Π°Π»Π° ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ список ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΡ… студСнтов. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ студСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ пропустили Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС подаСтся число m – количСство Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… с Π½Π°Ρ‡Π°Π»Π° ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°. Π”Π°Π»Π΅Π΅ ΠΈΠ΄ΡƒΡ‚ m Π±Π»ΠΎΠΊΠΎΠ² строк со списками студСнтов. На ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡƒΠΊΠ°Π·Π°Π½ΠΎ количСство Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ n, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄ΡƒΡ‚ n строк с фамилиями Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π±Ρ‹Π» Π½Π° Π»Π΅ΠΊΡ†ΠΈΠΈ.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°
3
3
Иванов
ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²Π°
Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²Π°
4
Иванов
ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²Π°
ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²Π°
КолСсников
3
ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²Π°
Иванов
КолСсников


    

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° вывСсти список студСнтов, ΠΏΠΎΡΠ΅Ρ‚ΠΈΠ²ΡˆΠΈΡ… всС Π»Π΅ΠΊΡ†ΠΈΠΈ, Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°
Иванов
ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²Π°


    

Бпособ 1:

        n = int(input())
res = {input() for _ in range(int(input()))}
for _ in range(n - 1):
    res &= {input() for _ in range(int(input()))}
  
print(*sorted(res), sep='\n')

    
    

Бпособ 2:

        res = [set(input() for _ in range(int(input()))) for _ in range(int(input()))]
print(*sorted(set.intersection(*res)), sep='\n')

    
    

Бпособ 3:

        n = int(input())
my_set = {frozenset(input() for _ in range(int(input()))) for _ in range(n)}
res = frozenset.intersection(*my_set)
print(*sorted(res), sep='\n')

    
    

2. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° IP-адрСсов

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая считываСт IP-адрСса ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Π² порядкС возрастания Π² соотвСтствии с дСсятичным прСдставлСниСм. Π§Ρ‚ΠΎΠ±Ρ‹ пСрСвСсти адрСс, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ 192.168.1.2 Π² дСсятичноС число, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ:

192 Ρ… 2563 + 168 x 2562 + 1 x 2561 + 2 x 2560 = 3232235778

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС подаСтся число n, Π·Π°Ρ‚Π΅ΠΌ n строк с IP-адрСсами.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°
12
123.199.44.25
123.199.201.245
145.198.168.93
170.67.181.62
170.67.222.111
170.67.11.90
45.8.106.59
203.13.32.156
179.67.171.194
179.67.181.62
179.67.212.111
177.67.10.90


    

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Бписок IP-адрСсов, отсортированных ΠΏΠΎ дСсятичному ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°
45.8.106.59
123.199.44.25
123.199.201.245
145.198.168.93
170.67.11.90
170.67.181.62
170.67.222.111
177.67.10.90
179.67.171.194
179.67.181.62
179.67.212.111
203.13.32.156




    

РСшСниС

Бпособ 1 – с использованиСм ipaddress:

        import ipaddress
n = int(input())
spisok = []
for i in range(n):
    temp = input()
    spisok.append(temp)
sortedkey = sorted(spisok, key = ipaddress.IPv4Address)
print(*sortedkey, sep='\n')
    
    

Бпособ 2:

        print(*sorted([input() for _ in range(int(input()))], key=lambda x: [*map(int, x.split('.'))]), sep='\n')
    
    

Бпособ 3:

        def decFormat(ip):
    return sum(map(lambda x, y: int(x) * 256 ** y, ip.split('.'), (3, 2, 1, 0)))
ips = [input() for _ in range(int(input()))]
print(*sorted(ips, key = decFormat), sep = '\n')

    
    

3. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ Π³Π΅ΠΌΠ°Ρ‚Ρ€ΠΈΠΈ

ГСматрия – это сумма числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±ΡƒΠΊΠ², входящих Π² состав слова. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠΊΠ² опрСдСляСтся ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ подсчСтС Π³Π΅ΠΌΠ°Ρ‚Ρ€ΠΈΠΈ всС Π±ΡƒΠΊΠ²Ρ‹ пСрСводятся Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° вывСсти список слов Π² исходном рСгистрС, отсортированный Π² соотвСтствии с Π³Π΅ΠΌΠ°Ρ‚Ρ€ΠΈΠ΅ΠΉ.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Число n, Π·Π°Ρ‚Π΅ΠΌ n строк с английскими словами, состоящими ΠΈΠ· Π±ΡƒΠΊΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… рСгистрах.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°
5
cAndy
WAffle
chocolaTE
Cake
tirAMIsu


    

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Бписок, отсортированный Π² соотвСтствии с Π³Π΅ΠΌΠ°Ρ‚Ρ€ΠΈΠ΅ΠΉ слов.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°
Cake
cAndy
WAffle
chocolaTE
tirAMIsu




    

РСшСниС

Бпособ 1:

        def gemValue(word):
    return sum(map(lambda l: ord(l.upper()) - ord('A'), word)), word
words = [input() for _ in range(int(input()))]
print(*sorted(words, key=gemValue), sep='\n')
    
    

Бпособ 2:

        words = [input() for _ in range(int(input()))]
print(*sorted(sorted(words), key=lambda word: sum([ord(sym.upper()) - ord('A') for l in word])), sep='\n')
    
    

Бпособ 3:

        print(*sorted([input() for _ in range(int(input()))],
             key=lambda x: (sum([ord(_) - ord('A') for _ in x.upper()]), x)),
     sep='\n')

    
    

4. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²

На Π²Ρ…ΠΎΠ΄ подаСтся строка символов, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ символы, формируя Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°
h h h e e l l l o w w o o o o r r r l l d d


    

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°
[['h', 'h', 'h'], ['e', 'e'], ['l', 'l', 'l'], ['o'], ['w', 'w'], ['o', 'o', 'o', 'o'], ['r', 'r', 'r'], ['l', 'l'], ['d', 'd']]
    

РСшСниС

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1 – с itertools:

        from itertools import groupby
print([list(group) for key, group in groupby(input().split())])

    
    

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2:

        res = []
for i in input().split():
    res.append([i]) if not res or i not in res[-1] else res[-1].append(i)
print(res)

    
    

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3:

        res = []
for i in input().split():
    if (not res) or (i != res[-1][-1]):
        res.append([i])
    else:
        res[-1].append(i)
print(res)

    
    

5. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ списка Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ

На Π²Ρ…ΠΎΠ΄ подаСтся строка символов, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… формируСтся список ΠΈ число n. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ список Π½Π° n частСй, формируя Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°
w t z k p e h t b
3
    

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°
[['w', 't', 'z'], ['k', 'p', 'e'], ['h', 't', 'b']]
    

РСшСниС

Бпособ 1:

        def cutList(n):
    cuts = [lst[x:x+n] for x in range(0, len(lst), n)]
    return cuts
lst = input().split()
n = int(input())
print(cutList(n))
    
    

Бпособ 2:

        def cutList(lst: list, n: int) -> list:
    return [lst[i:n + i] for i in range(0, len(lst), n)]
print(cutList(input().split(), int(input())))
    
    

Бпособ 3:

        def cutList(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]
print(list(cutList(input().split(), int(input()))))

    
    
***

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•