在python中模拟增量(+;+;)运算符
我的输入是一个列表,比如说在python中模拟增量(+;+;)运算符,python,Python,我的输入是一个列表,比如说l 它可以包含4个或5个元素。我想把它分配给5个变量,比如a,b,c,d和e 如果列表只有4个元素,那么第三个变量(c)应该是None 如果python有一个增量(++)操作符,我可以这样做 l = [4 or 5 string inputs] i = -1 a = l[i++] b = l[i++] c = None if len(l) > 4: c = l[i++] d = l[i++] e = l[i++] 除了在每次作业前写I+=1之外,我似乎找
l
它可以包含4个或5个元素。我想把它分配给5个变量,比如a
,b
,c
,d
和e
如果列表只有4个元素,那么第三个变量(c
)应该是None
如果python有一个增量(++)操作符,我可以这样做
l = [4 or 5 string inputs]
i = -1
a = l[i++]
b = l[i++]
c = None
if len(l) > 4:
c = l[i++]
d = l[i++]
e = l[i++]
除了在每次作业前写
I+=1
之外,我似乎找不到一个优雅的方法来完成这项工作。有没有一种更简单的pythonic方法可以做到这一点?我看不出你真的需要递增,因为每个变量都有固定的位置,取决于你的c条件
l = [4 or 5 string inputs]
a = l[0]
b = l[1]
if len(l) > 4:
c = l[2]
d = l[3]
e = l[4]
else:
c = None
d = l[2]
e = l[3]
您尝试使用C解决方案是因为您不熟悉Python的工具。使用解包比尝试模拟
++
要干净得多:
a, b, *c, d, e = l
c = c[0] if c else None
*c
目标接收未解压缩到其他目标中的l
所有元素的列表。如果这个列表是非空的,那么当强制为布尔值时,c
被认为是真的,因此如果c else None则c[0]如果存在c[0]
,否则None
则取c[0]。Python中没有++运算符。这里回答了一个类似的问题这个问题的具体情况
对于需要出于其他目的模拟++
的其他用户(通常是希望在没有显式i+=1
语句的情况下进行增量),他们可以使用。这将返回一个迭代器,每次它被传递到next()
时,迭代器将无限增加
导入itertools
i=itertools.count(0)#从0开始计数
打印(下一页(i))#0
打印(下一页(i))#1
#……等等。。。
您可以执行a、b、c、d、e=l
或a、b、d、e=l
,具体取决于长度。也许解包还有更多的Python解决方案,在列表中引用它们有什么不对吗?@AMC我不确定我是否理解你的问题。对不起,我想问你是否可以使用我的列表[0]
,我的列表[1]
等,而不是将它们分配给变量。@AMC是的,我可以。我想避免做像你在上面所做的那样的事情。像什么?为什么?