@Sunter

Каким образом можно сократить код?

Недавно только начал изучать питон(многомерные массивы), хотелось бы узнать полезные трюки, функции, которыми можно сократить код
k = 1
a = []
for i in range(3):
	a.append([])
	for j in range(3):
		a[i].append(k)
		k = k + 1
for i in range(3):
	print(*a[i])
  • Вопрос задан
  • 198 просмотров
Решения вопроса 2
MinTnt
@MinTnt
Если нужно именно сократить, без сильных изменений в самом коде... то придётся пожертвовать временем исполнения...
(locals().update({'k': 1, 'a': []}), [(a.append([]), [(a[i].append(k), loc.update({'k': k+1})) for j in range(3)]) for loc in [locals()] for i in range(3)], [print(*a[i]) for i in range(3)])

...но в принципе это всё возможно.

Ну а вообще, чтобы сократить написанное, можно
a = [[k for k in range(x, x+3)] for x in range(1, 10, 3)]
for i in a:
    print(*a)
Ответ написан
Комментировать
aRegius
@aRegius
Python Enthusiast
Навскидку:
spoiler
a = []
for i in range(3):
    a.append([])
# --- --- ---
a = [[] for _ in range(3)]

k = 1
a = []
for i in range(3):
    ...
    k = k + 1
# --- --- ---
a = [[i, i+1, i+2] for i in range(1, 8, 3)]

for i in range(3):
    print(*a[i])
# --- --- ---
for i in a:
	  print(*i)

Ну а лучше всего знать возможности языка и предоставляемые им библиотеки/решения и пользоваться ими - я бы решал вашу задачу так:
from more_itertools import chunked

a = list(chunked(range(1, 10), 3))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@mxrdxfxrrx
flstudio20, py3.x
Все и так кратко.
Ответ написан
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Найди библиотеку в сети, которая делает то, что ты хочешь, в питоне же так принято делать (стёб)
Ответ написан
Комментировать
@alexbprofit
Junior SE
k = 1
a = []
for i in range(3):
  a.append([])
  for array in a:
    array.append(k)
    k += 1
for array in a:
  print(*array)

более читаемый код
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 14:38
250000 руб./за проект
28 нояб. 2024, в 14:33
70000 руб./за проект
28 нояб. 2024, в 14:18
1500 руб./за проект