我有这样的程序
#+begin_src ipython :session alinbx :results output
import os
import glob
import copy
fs = os.listdir()
fs = filter(lambda x: not x.endswith("org"), fs)
fsc = copy.deepcopy(fs)
print(list(fsc)[:5])
# map(lambda x: os.rename(x, f"{x}.org"), fs)
#+end_src
#+RESULTS:
: ['19.Pseudo-Terminals', '12.Thread-Control', '05.Standard-IO-Library', '07.Process-Environment', '03.File-IO']
稍后,将org添加到名称
#+begin_src ipython :session alinbx :results output
map(lambda x: os.rename(x, x+'.org'), fs)
! ls | head -n 5
#+end_src
#+RESULTS:
: 00.Preface.org
: 01.UNIX-System-Overvie
: 01.xhtml
: 02.UNIX-Standardization-and-Implementations
: 03.File-IO
它不起作用,因此对于循环起作用
#+begin_src ipython :session alinbx :results output
for f in fs:
os.rename(f, f"{f}.org")
! ls | head -n 5
#+end_src
#+RESULTS:
: 00.Preface.org
: 01.UNIX-System-Overview.org
: 01.xhtml.org
: 02.UNIX-Standardization-and-Implementations.org
: 03.File-IO.org
别让python不欣赏函数式编程,为什么map
不起作用是什么原因?
答案 0 :(得分:2)
您需要使用map返回的迭代器。尝试
slow_clk