Рассмотрим массив из двух списков:Преобразование массив списков
In [98]: toks
Out[98]:
[['1.423',
'0.046',
'98.521',
'0.010',
'0.000',
'0.000',
'5814251520.0',
'769945600.0',
'18775908352.0',
'2.45024350208e+11',
'8131.903',
'168485.073',
'0.0',
'0.0',
'0.022',
'372.162',
'1123.041',
'1448.424'],
['71.765',
'0.478',
'27.757',
'0.0',
'0.0',
'0.0',
'5839618048.0',
'769945600.0',
'18776162304.0',
'2.44998729728e+11',
'0.0',
'0.0',
'1640.0',
'1608.0',
'0.0',
'3775.0',
'12858.0',
'6723.0']]
Таким образом, мы хотели бы, чтобы преобразовать список в Поинт
Point = namedtuple('Point', 'usr sys idl wai hiq siq used buff cach free
read writ recv send majpf minpf alloc vmfree')
Выполнение преобразования непосредственно делает работы:
In [99]: Point(*toks[0])
Out[99]: Point(usr='1.423', sys='0.046', idl='98.521', wai='0.010', hiq='0.000', siq='0.000', used='5814251520.0',
buff='769945600.0', cach='18775908352.0', free='2.45024350208e+11', read='8131.903', writ='168485.073', recv='0.0',
send='0.0', majpf='0.022', minpf='372.162', alloc='1123.041', vmfree='1448.424')
Но попытка создания Точки с помощью итерации не :
pts = [map(lambda x: Point(*x), tokarr) for tokarr in toks]
In [90]: pts = [map(lambda x: Point(*x), tokarr) for tokarr in toks0]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-90-a30764943aa1> in <module>()
----> 1 pts = [map(lambda x: Point(*x), tokarr) for tokarr in toks0]
<ipython-input-90-a30764943aa1> in <lambda>(x)
----> 1 pts = [map(lambda x: Point(*x), tokarr) for tokarr in toks0]
TypeError: __new__() takes exactly 19 arguments (2 given)
мне нужно последнее строительство, потому что намерение состоит в том, чтобы перебрать коллекцию списков и конвертировать каждую запись в точку. Как это сделать?
Вы должны использовать картографию или список. – Alik
@Alik Пожалуйста, укажите: код. Если вы заметили, что OP включает в себя попытку просмотра списка. – javadba
Я не понимаю, чего вы пытаетесь достичь с помощью '' map''. Не '' [Точка (* tokarr) для tokarr в toks] '' достаточно? – fjarri