首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python多赋值:要(tokens.append(),tokens.append(),剩余)=remaining.partition(空白)

Python多赋值:要(tokens.append(),tokens.append(),剩余)=remaining.partition(空白)
EN

Stack Overflow用户
提问于 2012-07-02 22:56:29
回答 3查看 445关注 0票数 0

我想做的是:

代码语言:javascript
复制
    (tokens.append(),tokens.append(), remaining) = remaining.partition(blank)

但这不是有效的语法。相反,我会这样做:

代码语言:javascript
复制
    (t1, t2, remaining) = remaining.partition(blank) 
    tokens.append(t1) 
    tokens.append(t2) 

有没有更干净的方法?顺便说一句,我认为我必须使用.partition,因为我不能将多个空格折叠成一个。

EN

回答 3

Stack Overflow用户

发布于 2012-07-02 22:59:35

试试这个:

代码语言:javascript
复制
tokens.extend(remaining.partition(blank))
remaining = tokens.pop()
票数 2
EN

Stack Overflow用户

发布于 2012-07-02 23:08:19

在Python3中,您可以使用extended iterable unpacking来完成此操作

代码语言:javascript
复制
*tokens[len(tokens):], remaining = remaining.partition(' ')
票数 1
EN

Stack Overflow用户

发布于 2012-07-06 10:46:14

我的目标是让每个{结果的单个元素}作为方法的参数或赋值的值传递。

剩余= 'abc def ghi jkl‘tokens=[]

我想,从概念上讲

(tokens.append(),tokens.append(),剩余)=remaining.partition(空白)

选择1:这是我所做的:

(t1,t2,剩余)=remaining.partition(空白)

tokens.append(t1)

tokens.append(t2)

备选方案2:非常丑陋,这是由于“繁重的提升”的不必要的重复处理,在本例中是分区:

[(tokens.append( t1 ),tokens.append( t2 ),remaining) for t1 in (remaining.partition(‘'),) for t2 in (remaining.partition(’')1,) for remaining in (remaining.partition(‘')2,)]

选择3:仍然丑陋,但在概念上更接近:

t=remaining.partition(‘')

[(tokens.append( t1 ),tokens.append( t2 ),剩余)对于(t,)中的t1,)对于(t1,)中的t2,对于(t2,)中的剩余)]

这里的技巧是在" for 's“和”in‘s“的单项列表之前使用方法调用。单项列表中的逗号必须跟在唯一项之后。逗号不能放在它前面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11296148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档