在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是的,我可以。我想避免做像你在上面所做的那样的事情。像什么?为什么?