Академия Eduson

Списки. Списочные выражения

 Создание списков

 Как записывается списочное выражение?

 Ответ: [выражение for переменная in последовательность]

 Дополните приведенный код, используя списочное выражение так, чтобы получить новый список, содержащий строки исходного списка, где у каждой строки удалён первый символ.

keywords = ['False', 'True', 'None', 'and', 'with', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'try', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'while', 'yield']

new_keywords = [n[1:] for n in keywords]

print(new_keywords)

 Дополните приведенный код, используя списочное выражение, так, чтобы получить новый список, содержащий длины строк исходного списка.

keywords = ['False', 'True', 'None', 'and', 'with', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'try', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'while', 'yield']

lengths = [len(n) for n in keywords]

print(lengths)

 Дополните приведенный код списочным выражением, чтобы получить новый список, содержащий только слова длиной не менее пяти символов (включительно).

keywords = ['False', 'True', 'None', 'and', 'with', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'try', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'while', 'yield']

new_keywords = [n for n in keywords if len(n) >= 5]

print(new_keywords)

 Дополните приведенный код, используя списочное выражение, так чтобы получить список всех чисел-палиндромов от 100 до 1000 (включительно).

palindromes = [i for i in range(100, 1000) if str(i) == str(i)[::-1]]

print(palindromes)

 На вход программе подается натуральное число n. Напишите программу, использующую списочное выражение, которая создает список, содержащий квадраты чисел от 1 до n (включительно), а затем выводит его элементы построчно, то есть каждый на отдельной строке.

a = [i ** 2 for i in range(1, int(input())+1)]

print(*a, sep='\n')

 На вход программе подается строка текста, содержащая целые числа. Напишите программу, использующую списочное выражение, которая выведет кубы указанных чисел также на одной строке.

kub = [int(k) ** 3 for k in input().split()]

print(*kub)

 На вход программе подается строка текста, содержащая слова. Напишите программу, которая выводит слова введенной строки в столбик.

t = [s for s in input().split()]

print(*t, sep='\n')

 На вход программе подается строка текста. Напишите программу, использующую списочное выражение, которая выводит все цифровые символы данной строки.

t = [c for c in input() if c.isdigit()]

print(*t, sep='')

 На вход программе подаётся строка текста, содержащая целые числа. Напишите программу, использующую списочное выражение, которая выведет квадраты чётных чисел, кроме тех квадратов, которые оканчиваются на цифру 4.

t = [int(s) ** 2 for s in input().split() if int(s) **2 % 2 == 0 and int(s) ** 2 % 10 != 4]

print(*t)