Python:元组赋值,同时转换类型

我正在将字符串中的制表符分隔值读入这样的对象:

class Node(rect):
    def __init__(self, line):
        (self.id, self.x1, self.y1, self.x2, self.y2) = line.split('\t')

这工作正常,但我想要将那些从字符串行读取的x和y坐标转换为浮点数.什么是最pythonic的方式来做到这一点?我想象的东西

(self.id, float(self.x1), float(self.y1), float(self.x2), float(self.y2)) = line.split('\t')

这当然不起作用.有没有一种优雅的方法来做到这一点,或者我必须像self.x1 = float(self.x1)之后手动转换?

最佳答案
你不能在一条线上做到这一点,但你可以这样做:

self.id, *rest = line.split('\t')
self.x1, self.y1, self.x2, self.y2 = map(float, rest)

如果您使用的是python2,则必须执行以下操作:

splitted = line.split('\t')
self.id = splitted.pop(0)
self.x1, self.y1, self.x2, self.y2 = map(float, splitted)

转载注明原文:Python:元组赋值,同时转换类型 - 代码日志