Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 25, 2019 08:14:42

Blaukempt
Зарегистрирован: 2019-08-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод списка списков

Как сделать ввод списка в котором будут списки с номерами и координатами точек? Количество точек пользователь укажет. Список должен получится такого типа:

  [[1,5.0,5.0],[2,4.5,5.0],[3,4.5,5.7]]

Отредактировано Blaukempt (Авг. 25, 2019 09:28:46)

Офлайн

#2 Авг. 25, 2019 12:38:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Ввод списка списков

 >>> print([[1,5.0,5.0],[2,4.5,5.0],[3,4.5,5.7]])
[[1, 5.0, 5.0], [2, 4.5, 5.0], [3, 4.5, 5.7]]



Офлайн

#3 Авг. 25, 2019 12:52:10

Blaukempt
Зарегистрирован: 2019-08-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод списка списков

Хорошая шутка, оценил.
Спасибо!

Офлайн

#4 Авг. 25, 2019 13:56:07

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Ввод списка списков

 >>> out = []
>>> while True:
    s = input('add point: ')
    if not s: break
    out.append([float(i) for i in s.split()])
    
add point: 1 2 3
add point: 2 3 4
add point: 3.4 5.6 6.7
add point: 
>>> out
[[1.0, 2.0, 3.0], [2.0, 3.0, 4.0], [3.4, 5.6, 6.7]]
>>> 

Офлайн

#5 Авг. 25, 2019 17:05:39

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Ввод списка списков

Blaukempt
ввод списка в котором будут списки с номерами и координатами точек?
Blaukempt
Хорошая шутка,
Извините, сослепу прочитал ввод.

Но пост все равно актуален. По сути не указано откуда ввод, отвечающие вынуждены сами додумывать откуда ввод и какой у этого источника формат. В современном мире ввод пользователем с консоли крайне редкое явление. Ввод идет обычно из файла. При наличии выбора вариант vic57 плох тем что “изобретен” свой формат, обращение к которому будет заставлять каждого пользователя заново писать код чтения (тонкостей хватает, комментарии разделители признак конца ввода и т.п.).

Используйте известные форматы (формат будет идентичен тому что я привел в первом примере)
 import json
with open("some.json","r") as f:
      data = json.load(f)
формат файла: [[1,2.3,3.3],[3,2.3,3.3],[2,2.3,3.4]]
c yaml будет покороче и можно организовать потоковый ввод.

Номер точки и координаты характерны для всяких FEM/CAD систем. Возможно имеет смысл использовать принятые в этих приложениях форматы, что позволит использовать реализованные методы просмотра и обработки данных. Например неплохо подойдут формтаты svg, msh, step.



Отредактировано doza_and (Авг. 25, 2019 17:47:04)

Офлайн

#6 Авг. 25, 2019 20:11:12

Blaukempt
Зарегистрирован: 2019-08-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ввод списка списков

Спасибо! Вариант vic57 прикрутил. Список списков получился как надо. Мне именно с консоли и надо.
Я четыре дня всего Python изучаю.
Для самообразовательных целей пытаюсь переложить на Python традиционные задачи из своей сферы деятельности.
Уже видел как можно считать csv. файл. Даже вроде понял как. Мне кажется если нужно ввести 5-10 точек, то можно и с клавиатуры это сделать.
Я правда представлял, что ввод будет выглядеть как просьба ввести номер первой точки, затем координату Х первой точки, затем координату У и так далее до последней.
Вариант vic57 работает, он очень короткий, и при вводе меньше клавиш нажимать надо.
Спасибо за подсказку

Офлайн

#7 Авг. 25, 2019 21:01:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Ввод списка списков

Blaukempt
переложить на Python традиционные задачи из своей сферы деятельности.
Решать вам,но на мой взгляд ввод с консоли тупиковый путь. Для ввода и корректировки данных есть текстовый редактор, он в большинстве случаев гораздо лучше самописного ввода.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version