Есть строка. Нужно получить новую строку, в которой после каждого слова, заканчивающегося на g, стоит знак «@».
def replacement(s):
return s.replace("g ", "g@ ")
17
Есть список чисел, нужно отобрать в новый список числа без повторов.
def no_duplicates(arr):
return list(set(arr))
18
Отобрать из списка только уникальные элементы.
def unique_elements(arr):
status = {}
for n in arr:
if n in status.keys():
status[n] += 1
else:
status[n] = 1
return [n for n in status if status[n] == 1]
x = [1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 10, 10]
print(unique_elements(x))
19
Отобрать из списка неуникальные элементы.
def non_unique_elements(arr):
status = {}
for n in arr:
if n in status.keys():
status[n] += 1
else:
status[n] = 1
return [n for n in status if status[n] > 1]
x = [1, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 10, 10]
print(non_unique_elements(x))
20
Из массива (списка), содержащего 100 элементов выбрать 20 элементов в случайных неповторяющихся позициях. Переместить выбранные элементы в начало массива, обменяв их местами с имеющимися там.
21
Отсортировать массив из 100 элементов по убыванию. Посчитать сумму всех нечетных элементов. Вычесть из каждого 3-го элемента данную сумму.
def happy_sorting(arr):
sum_all = sum([n for n in arr if n % 2 == 1])
for i in range(len(arr)):
if i % 3 == 0:
arr[i] -= sum_all
return arr
x = [x for x in range(100)]
x = sorted(x)[::-1]
print(happy_sorting(x))
22
В двумерном массиве найти строку массива, сумма элементов которой минимальна. Вычесть элементы данной строки из соответствующих элементов всех строк массива.
23
Сгенерировать массив из 10 неповторяющихся элементов. Создать и двумерный массив 10*10 и скопировать элементы сгенерированного массива в каждую строку двумерного массива.
from random import sample
x = sample(range(100), 10)
matrix = [[None for j in range(10)] for i in range(10)]
for i in range(10):
for j in range(10):
matrix[i][j] = x[j]
print(matrix)
24
Для массива 100 случайных чисел рассчитать среднеквадратическое отклонение. Вычесть из каждого элемента массива данное значение отклонения. Из результирующего массива выбрать 3 наибольших значения.
from random import randint
from math import sqrt
# Шаг 1
# Нужно создать массив из 100 случайных чисел
data = [randint(0,100) for i in range(100)]
print("data :", data, "\n")
# Шаг 2
# Нужно вычислить среднее арифметическое элементов массива
middle = sum(data) / 100
print("middle :", middle, "\n")
# Шаг 3
# Нужно вычислить среднее квадратичное отклонение
deviation = sqrt( sum( [ (x - middle)**2 for x in data ] ) / 100 )
deviation = round(deviation, 2) # округлим до 2-х знаков после запятой
print("deviation :", deviation, "\n")
# Шаг 4
# Из каждого элемента массива нужно вычесть среднее квадратичное отклонение
data = [round(x-deviation, 2) for x in data]
# каждую полученную разность округлим до 2-х знаков после запятой
print("subtraction deviation :", data, "\n")
# Шаг 5
# В исходном массиве некоторые числа могут повторяться (потому что они случайные)
# Следовательно, в массиве, полученном после шага 4 также возможн повторения
# Так что из полученного списка необходимо исключить повторы
data = list(set(data))
print("without duplicates :", data, "\n")
# Шаг 6
# В полученном массиве нужно найти 3 наибольших значения
# Для этого нужно 3 раза подряд находить максимум и заносить его в отдельный массив
# После этого необходимо каждый раз удалять найденный максимум из массива, в котором он был найден
maximums = []
for i in range(3):
max_number = max(data)
maximums.append(max_number)
data.remove(max_number)
print("maximums :", maximums)
25
Создать два упорядоченных по возрастанию массива. Слить два массива в один также отсортированный по возрастанию.
from random import randint
a = sorted([randint(1, 100) for i in range(10)])
print(a)
b = sorted([randint(1, 100) for j in range(5)])
print(b)
c = sorted(a+b)
print(c)
26
Сгенерировать два случайных массива размера 20 с неповторяющимися элементами в диапазоне от 0 до 100. Посчитать количество совпадений между элементами массивов.
from random import sample
a = sample(range(0, 100), 20)
print(a)
b = sample(range(0, 100), 20)
print(b)
counter = sum([1 for x in a if x in b])
print(counter)
27
Сгенерировать два случайных двумерных массива одинакового размера. Перемножить элементы в соответствующих позициях и результат записать в третий
from random import randint
row = int(input("Enter number of strings: "))
col = int(input("Enter number of columns: "))
a = [[randint(1, 100) for j in range(col)] for i in range(row)]
print(a)
b = [[randint(1, 100) for j in range(col)] for i in range(row)]
print(b)
c = [[a[i][j]*b[i][j] for j in range(col)] for i in range(row)]
print(c)
28
В двумерно массиве найти столбец, сумма элементов которого максимальна. Вычесть элементы этого столбца из соответствующих элементов остальных столбцов. Распечатать массив.
from random import randint
def bubble_sorting(arr):
for i in range(len(arr)-1, 0, -1):
for j in range(i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
data = [randint(1, 100) for i in range(10)]
print(data)
print(bubble_sorting(data))
30
Отсортировать двумерный массив алгоритмом выбора
# Сортировка выбором минимума
from random import randint
def Selection_Sorting(arr):
l = len(arr)
for i in range(l-1):
min_index = i
for j in range(i+1,l):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
data = [randint(1,100) for i in range(10)]
print(data)
print(Selection_Sorting(data))
# Сортировка выбором максимума
from random import randint
def Selection_Sorting(arr):
l = len(arr)
for i in range(l-1,0,-1):
max_index = i
for j in range(i+1):
if arr[j] > arr[max_index]:
max_index = j
arr[i], arr[max_index] = arr[max_index], arr[i]
return arr
data = [randint(1,100) for i in range(10)]
print(data)
print(Selection_Sorting(data))