Joa*_*nge 10 python list-comprehension
有可能有类似的东西:
list1 = ...
currentValue = 0
list2 = [currentValue += i, i for i in list1]
Run Code Online (Sandbox Code Playgroud)
我试过但是没有用?编写这些语法的正确语法是什么?
编辑:print语句就是一个例子.实际上我在循环外增加一个值.
Bra*_*des 27
语句不能放在Python中的表达式中; 这是一种故意用语言设计的复杂功能.对于这个问题,尝试使用确实使其成为语言的复杂功能:生成器.看:
def total_and_item(sequence):
total = 0
for i in sequence:
total += i
yield (total, i)
list2 = list(total_and_item(list1))
Run Code Online (Sandbox Code Playgroud)
生成器保持到目前为止所看到的项目的运行记录,并将其作为每个项目的前缀,就像您看起来像您尝试做的那样.当然,一个简单的循环可能更简单,它在顶部创建一个空列表,只是调用append()很多!:-)
我不太确定你想做什么,但可能是这样的
list2 = [(i, i*2, i) for i in list1]
print list2
Run Code Online (Sandbox Code Playgroud)
列表理解中的语句必须是单个语句,但您始终可以将其设为函数调用:
def foo(i):
print i
print i * 2
return i
list2 = [foo(i) for i in list1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13720 次 |
| 最近记录: |