python for循环的用法,怎么前面还有一个变量或函数?

ls1=['a',1,'b',2]ls2=[str(i)foriinls1]print(ls2)代码中str(i)foriinls1是什么意思呢?是不是等价于下面的语句?... ls1 = ['a', 1, 'b', 2]
ls2 = [str(i) for i in ls1]
print(ls2)
代码中str(i) for i in ls1是什么意思呢?是不是等价于下面的语句?
for i in ls1:
str(i)
展开
 我来答
匿名用户
2019-02-02
展开全部
ls2 =[str(i) for i in ls1]

等价于

ls2 = []
for i in ls1:
    ls2.append(str(i))

[str(i) for i in ls1]这是列表生成式

顾名思义,列表生成式就是一个用来生成列表的特定语法形式的表达式

1. 语法格式:

基础语法格式

[exp for iter_var in iterable]

工作过程:

  • 迭代iterable中的每个元素;

  • 每次迭代都先把结果赋值给iter_var,然后通过exp得到一个新的计算值;

  • 最后把所有通过exp得到的计算值以一个新列表的形式返回。

  • 相当于这样的过程:

  • L = []for iter_var in iterable:

  •    L.append(exp)

  • 带过滤功能语法格式

  • [exp for iter_var in iterable if_exp]

  • 工作过程:

  • 迭代iterable中的每个元素,每次迭代都先判断if_exp表达式结果为真,如果为真则进行下一步,如果为假则进行下一次迭代;

  • 把迭代结果赋值给iter_var,然后通过exp得到一个新的计算值;

  • 最后把所有通过exp得到的计算值以一个新列表的形式返回。

  • 相当于这样的过程:

  • L = []for iter_var in iterable:

  •    if_exp:

  •        L.append(exp)

  • 循环嵌套语法格式

  • [exp for iter_var_A in iterable_A for iter_var_B in iterable_B]

  • 工作过程:
    每迭代iterable_A中的一个元素,就把ierable_B中的所有元素都迭代一遍。

    相当于这样的过程:

  • L = []for iter_var_A in iterable_A:

  •    for iter_var_B in iterable_B:

  •        L.append(exp)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式