将列表解析为变量和子列表 - pythonic 方式
parse a list into variable and sublist - pythonic way
我正在使用此脚本将一个列表解析为一个变量和另一个列表:
b=[' 687.3774', ' 478.6', ' 47', ' 58', ' 96.90']
c,d=b[0],b[1:]
它总是第一个被分隔的元素,这段代码工作正常,但是,它在右侧重复列表 b
。这不是 问题 但当我的 b
像 line.replace('*',',').replace(' ',',').split(',')
这样大的时候它确实很烦人。这看起来不像是 pythonic 的写法。我已经阅读了该论坛中的一些帖子以及有关元组等的文档,但对我来说并没有什么用。以下是我以 "shot in the dark" 的方式尝试过的一些方法,但显然没有用
d=[]
c,d[:]=b
c,list(d)=b
c,d=b[0],[1:]
我也知道 b.pop
方法,但如果不在 RHS 中重复 b
,我找不到使用该方法的方法。
感谢您的帮助。谢谢。
在Python3中,你可以试试
c, *d = b
它将b[0]
分配给c
,其余分配给d
。您应该看到 this 问题的答案,以了解有关 *
运算符如何处理序列的解释。
我正在使用此脚本将一个列表解析为一个变量和另一个列表:
b=[' 687.3774', ' 478.6', ' 47', ' 58', ' 96.90']
c,d=b[0],b[1:]
它总是第一个被分隔的元素,这段代码工作正常,但是,它在右侧重复列表 b
。这不是 问题 但当我的 b
像 line.replace('*',',').replace(' ',',').split(',')
这样大的时候它确实很烦人。这看起来不像是 pythonic 的写法。我已经阅读了该论坛中的一些帖子以及有关元组等的文档,但对我来说并没有什么用。以下是我以 "shot in the dark" 的方式尝试过的一些方法,但显然没有用
d=[]
c,d[:]=b
c,list(d)=b
c,d=b[0],[1:]
我也知道 b.pop
方法,但如果不在 RHS 中重复 b
,我找不到使用该方法的方法。
感谢您的帮助。谢谢。
在Python3中,你可以试试
c, *d = b
它将b[0]
分配给c
,其余分配给d
。您应该看到 this 问题的答案,以了解有关 *
运算符如何处理序列的解释。