动态创建namedtup时的正确格式

2024-10-04 09:17:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个namedtuple,并使用它来跟踪各个数据集。当我向namedtuple添加一个新的“数据点”时,print()函数显示我没有相同的确切信息。下面是一个例子:

from collections import namedtuple
bbnr = namedtuple('bbnr', ['SN', 'ptr', 'type2'])
DVCS = bbnr('AB01', 101, 'bbnr')
DVCS_b = [DVCS]
print(DVCS_b)  # produces [bbnr(SN='AB01', ptr=101, type2='bbnr')]

DVCS = DVCS, bbnr('AB02', 105, 'bbnr')
DVCS_b = [DVCS]
print(DVCS_b)  # [(bbnr(SN='AB01', ptr=101, type2='bbnr'), bbnr(SN='AB02', ptr=105, type2='bbnr'))]

请注意,在第二个打印输出中,括号内的整个元组周围有一组额外的括号()。在

如何才能与向namedtuple添加新元素保持一致?在


Tags: 数据函数from信息namedtuple例子括号print
1条回答
网友
1楼 · 发布于 2024-10-04 09:17:27

您的问题与命名元组无关;您正在创建这些元组。在

相反,您在这里创建了一个元组:

DVCS = DVCS, bbnr('AB02', 105, 'bbnr')

注意逗号;元组由逗号定义,而不是由括号定义:

^{pr2}$

然后将这个元组包装成一个list对象。在

如果需要这些值的列表,则只需创建列表:

DVCS_b = [DVCS, bbnr('AB02', 105, 'bbnr')]

或者创建不带DVCS值的新命名元组,并从现有列表中获取以前创建的命名元组:

DVCS = bbnr('AB02', 105, 'bbnr')]
DVCS_b = DVCS_b + [DVCS]

或将其附加到现有列表:

DVCS = bbnr('AB02', 105, 'bbnr')]
DVCS_b.append(DVCS)

相关问题 更多 >