Как преобразовать namedtuple в кортеж - PullRequest
1 голос
/ 11 апреля 2019

Как сделать противоположное этому ?

У меня есть список именованных кортежей, который я построил путем итерации кадра данных pandas:

list = []
for currRow in dataframe.itertuples():
    list.append(currRow)

Как преобразоватьэтот список именованных кортежей в список кортежей?Обратите внимание, что itertuples () возвращает namedtuples.

Ответы [ 3 ]

4 голосов
/ 11 апреля 2019

Вы просто вводите это через конструктор tuple():

>>> from collections import namedtuple

>>> foo = namedtuple('foo', ('bar', 'baz'))
>>> nt = foo(1,2)
>>> nt
foo(bar=1, baz=2)
>>> tuple(nt)
(1, 2)
2 голосов
/ 11 апреля 2019

Во-первых, не называйте свои переменные после встроенных.

Чтобы ответить на ваш вопрос, вы можете просто использовать конструктор tuple;при условии, что ваш источник list назван l:

l_tuples = [tuple(t) for t in l]
1 голос
/ 11 апреля 2019

Вы можете сделать это.Просто создайте кортеж из именованного кортежа как param.

>>> X = namedtuple('X', 'y')
>>> x1 = X(1)
>>> x2 = X(2)
>>> x3 = X(3)
>>> x_list = [x1, x2, x3]
>>> x_tuples = [tuple(i) for i in x_list]
>>> x_tuples
[(1,), (2,), (3,)]
>>> 
...