找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1539|回复: 4

[求助] 小白看不懂一行代码,遇到几个问题

1

主题

1

帖子

1

积分

贫民

积分
1
HongKongDollar 发表于 2022-6-2 15:39:29 | 显示全部楼层 |阅读模式
代码是:
print ([m+n for m in 'abcd' for n in '1234'])
输出结果:
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4', 'd1', 'd2', 'd3', 'd4']
问题:
1. 两个"[]"是起的什么作用?list里面不应改装的是值吗,没有看到赋值呀。试着去掉了print里的中括号就报错了。
2. '+'起的是什么作用?去掉似乎会报错,是链接字符串吗。
3. 两个嵌套for语句为什么能跟在n后面,嵌套在print函数的输入里?
回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
copperhammer 发表于 2022-6-23 17:44:51 | 显示全部楼层
涉及到的知识点
1、print(),打印一个或多个对象
2、[]里面的内容是双重列表推导式
式子等价于如下写法:
num_list = []
for m in 'abcd':
    for n in '123456':
        num_list.append(m+n)
print(num_list)
回复 支持 1 反对 0

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
阮灿 发表于 2022-7-8 09:39:30 | 显示全部楼层
虽然看懂了代码,作为初学者是没想到还可以这样写,是我要写的话,应该会写成下面一楼这样
回复 支持 反对

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
Nemo_eyes 发表于 2022-7-15 22:51:52 | 显示全部楼层
阮灿 发表于 2022-7-8 09:39
虽然看懂了代码,作为初学者是没想到还可以这样写,是我要写的话,应该会写成下面一楼这样 ...

这叫pythonic
回复 支持 反对

使用道具 举报

0

主题

9

帖子

9

积分

贫民

积分
9
jiangshuhengxin 发表于 2022-7-29 09:53:48 | 显示全部楼层
这是列表生成式的用法,运行效率高于直接使用嵌套for循环。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表