小编典典

理解Python列表理解的问题

python

最后一行在以下代码中是什么意思?

import pickle, urllib                                                                                                                                                     

  handle = urllib.urlopen("http://www.pythonchallenge.com/pc/def/banner.p")
  data = pickle.load(handle)
  handle.close()

  for elt in data:
         print "".join([e[1] * e[0] for e in elt])

我对问题的尝试:

  • “” .join …使用join方法来清空文本
  • e [1] * e [0]将序列中的两个后续值相乘
  • 我不确定是什么
  • 我不知道这是什么意思,当您在for循环之前有一些东西时,例如: e[1] * e[0] for e in elt

阅读 231

收藏
2021-01-20

共1个答案

小编典典

也许最好用一个例子来解释:

print “”.join([e[1] * e[0] for e in elt])
是…的缩写

x = []
for e in elt:
x.append(e[1] * e[0])
print “”.join(x)
列表推导只是for循环的语法糖,它使语句根据一系列语句进行表达。

elt可以是任意对象,因为您是从泡菜中加载的,e同样如此。用法表明它是一种序列类型,但是可以是实现序列协议的任何东西。

2021-01-20