我有一个类似这样的元组:
我希望提取前6个值作为元组(按顺序),并将最后一个值作为字符串。以下代码已经可行,但我想知道是否有一种“一行代码”的方法来实现我想要的结果。
如果没有其他办法,我可能会选择第二种方法,将列表转换为元组。
t = (1, '0076', 'AU', '9927016803A', '9927013903B', '0010', 'VO')
我希望提取前6个值作为元组(按顺序),并将最后一个值作为字符串。以下代码已经可行,但我想知道是否有一种“一行代码”的方法来实现我想要的结果。
# works, but it's not nice to unpack each value individually
cid,sc,ma,comp,mat,step,alt = t
t_new = (cid,sc,ma,comp,mat,step,)
print(t_new, alt) # (1, '0076', 'AU', '9927016803A', '9927013903B', '0010') VO
这非常接近我要找的东西,但它返回的第一个值是列表而不是元组:
# works, but returns list
*t_new,alt = t
print(t_new, alt) # [1, '0076', 'AU', '9927016803A', '9927013903B', '0010'] VO
我已经尝试了以下方法,但都没有成功:
tuple(*t_new),alt = t # SyntaxError
(*t_new),alt = t # still a list
(*t_new,),alt = t # ValueError
如果没有其他办法,我可能会选择第二种方法,将列表转换为元组。