相关疑难解决方法(0)

使用列表推导仅仅是副作用是Pythonic吗?

想想我正在调用它的副作用的函数,而不是返回值(比如打印到屏幕,更新GUI,打印到文件等).

def fun_with_side_effects(x):
    ...side effects...
    return y
Run Code Online (Sandbox Code Playgroud)

现在,是Pythonic使用列表推导来调用这个函数:

[fun_with_side_effects(x) for x in y if (...conditions...)]
Run Code Online (Sandbox Code Playgroud)

请注意,我不会将列表保存在任何位置

或者我应该像这样调用这个函数:

for x in y:
    if (...conditions...):
        fun_with_side_effects(x)
Run Code Online (Sandbox Code Playgroud)

哪个更好?为什么?

python list-comprehension

97
推荐指数
4
解决办法
8534
查看次数

同时枚举两个python列表?

如何同时枚举两个相等长度的列表?我确信必须有更多的pythonic方法来执行以下操作:

for index, value1 in enumerate(data1):
    print index, value1 + data2[index]
Run Code Online (Sandbox Code Playgroud)

我想在for循环中使用index和data1 [index]和data2 [index].

python list

46
推荐指数
3
解决办法
3万
查看次数

Python3中非地图评估版的地图?

我正在尝试map在Python3中使用.这是我正在使用的一些代码:

import csv

data = [
    [1],
    [2],
    [3]
]

with open("output.csv", "w") as f:
    writer = csv.writer(f)
    map(writer.writerow, data)
Run Code Online (Sandbox Code Playgroud)

但是,因为map在Python3中返回一个迭代器,这段代码在Python3中不起作用(但在Python2中工作正常,因为该版本map总是返回一个list)

我目前的解决方案是list在迭代器上添加函数调用以强制进行评估.但它似乎很奇怪(我不关心返回值,为什么我应该将迭代器转换为列表?)

更好的解决方案?

python

19
推荐指数
3
解决办法
6831
查看次数

标签 统计

python ×3

list ×1

list-comprehension ×1