字符串列表或单个字符串中的命名元组之间的区别?

问题描述 投票:0回答:3

这两个命名元组有什么区别:

Point = collections.namedtuple('Point','x,y')

Point = collections.namedtuple('Point',['x','y'])

两者似乎在功能上对我来说都是相同的(使用python 3.8.0)

python python-3.x namedtuple
3个回答
0
投票

这两个命名元组的确相同:-)

>>> import collections
>>> Point1 = collections.namedtuple('Point','x,y')
>>> Point2 = collections.namedtuple('Point',['x','y'])
>>> Point1._fields
('x', 'y')
>>> Point2._fields
('x', 'y')

namedtuple() docs

field_names是一个字符串序列,例如['x','y']。另外,field_names可以是单个字符串,每个fieldname用空格和/或逗号分隔,例如'x y'或'x,y'。


0
投票
两个定义之间

没有没有区别。命名元组支持序列和以名称为输入的逗号分隔或空格分隔的字符串。

documentation

field_names是一个字符串序列,例如['x', 'y']或者],field_names可以是单个字符串,每个字段名用空格和/或逗号分隔,例如'x y''x, y'

粗体强调我的; 'x, y''x y'字符串语法只是拼写字段名称的另一种方法。

您可以检查两个对象上的namedtuple._fields attribute以确认它们确实具有相同的字段名称:

namedtuple._fields

0
投票

[从纯粹的审美观点出发,倾向于认为示例的第二部分外观

© www.soinside.com 2019 - 2024. All rights reserved.