是否有与C++;Python列表理解中使用的前置/后缀运算符?
我编写了一个函数,填充两个元素的列表,其中第一个元素是来自不同列表的元素,第二个元素是递增的值是否有与C++;Python列表理解中使用的前置/后缀运算符?,python,list,Python,List,我编写了一个函数,填充两个元素的列表,其中第一个元素是来自不同列表的元素,第二个元素是递增的值 def list_of_pairs(seq, start): """ Returns a list of pairs """ >>> list_of_pairs([3, 2, 1], 1) [ [3, 1], [2, 2], [1, 3] ] return [[i, start++] for i in seq] 是否有一个等价的C++后缀算子可以使用
def list_of_pairs(seq, start):
""" Returns a list of pairs """
>>> list_of_pairs([3, 2, 1], 1)
[ [3, 1], [2, 2], [1, 3] ]
return [[i, start++] for i in seq]
是否有一个等价的C++后缀算子可以使用?谢谢
附加问题:使用列表构造函数是否比使用方括号构建列表更具python风格 编辑:这是我目前(不太漂亮)的解决方法-def list_of_pairs(seq, start):
""" Returns a list of pairs """
>>> list_of_pairs([3, 2, 1], 1)
[ [3, 1], [2, 2], [1, 3] ]
return [[seq[i], start+i] for i in range(len(seq))]
对于序列中的每个元素,可以通过调用
count
对象上的next
来实现同样的效果:
from itertools import count
c = count(start)
lst = [[x, next(c)] for x in seq]
使用方括号构建列表
这是一个列表。使用列表理解来创建列表是非常标准的,而且最有可能是python式的。对于序列中的每个元素,可以通过调用
count
对象上的next
来实现这一点:
from itertools import count
c = count(start)
lst = [[x, next(c)] for x in seq]
使用方括号构建列表
这是一个列表。使用列表理解来创建列表是非常标准的,而且最有可能是python式的。您可以使用它来实现这一点。枚举在遍历值列表时返回索引和值。根据您的要求,您需要list
列表作为[val,index+count]
。下面是实现该目标的示例代码:
>>> seq = [2, 6, 9]
>>> count = 2
>>> [[val, count+i] for i, val in enumerate(seq)]
[[2, 2], [6, 3], [9, 4]]
您可以使用来实现这一点。枚举在遍历值列表时返回索引和值。根据您的要求,您需要list
列表作为[val,index+count]
。下面是实现该目标的示例代码:
>>> seq = [2, 6, 9]
>>> count = 2
>>> [[val, count+i] for i, val in enumerate(seq)]
[[2, 2], [6, 3], [9, 4]]
++
和--
被故意从Python中排除,因为在表达式中使用它们往往会导致代码混乱和一个接一个的错误
您应改为使用:
++
和--
被故意从Python中排除,因为在表达式中使用它们往往会导致代码混乱和一个接一个的错误
您应改为使用: