鱼C论坛

 找回密码
 立即注册
查看: 1797|回复: 5

[已解决]怎么理解列表推导式补充和列表切片?

[复制链接]
发表于 2020-9-3 22:12:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. list1 = ['1.just do it','2.一切皆有可能','3.程序员','4.impossible']

  2. list2 = ['4.阿迪达斯','2.李宁','3.鱼C','1.耐克']

  3. list3 = []
  4. for slogan in list1:
  5.     for name in list2:
  6.         if slogan[0] == name[0]:
  7.             list3.append (name+':'+slogan[2:])
  8.             print (list3)
复制代码


有没有大神能华哥思维导图,便于理解这段代码的意思?
从其他地方找到的这种动图,感觉对学习很有帮助:

while循环

while循环
最佳答案
2020-9-4 01:20:46
  1. list1 = ['1.just do it','2.一切皆有可能','3.程序员','4.impossible']

  2. list2 = ['4.阿迪达斯','2.李宁','3.鱼C','1.耐克']

  3. list3 = []
  4. for slogan in list1:
  5.     print(f'第一层循环,slogan={slogan}')
  6.     for name in list2:
  7.         print(f'    第二层循环,name={name}')
  8.         print(f'        判断:slogan[0]={slogan[0]}  是否等于  name[0]={name[0]},所以判断结果为{slogan[0] == name[0]}')
  9.         print(f'        如果判断结果为假,进入第二层循环的下一个数')

  10.         if slogan[0] == name[0]:
  11.             print(f'        如果判断结果为真,将name={name}和slogan[2:]={slogan[2:]}做拼接,再添加进list3')
  12.             list3.append (name+':'+slogan[2:])

  13.             print (f'        list3内元素为{list3}')
复制代码


把上面代码运行一下看看能不能理解,或者看看这个思维导图是不是你想要的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-4 00:44:18 | 显示全部楼层


列表推导式你可以看看这个,从基础开始解析整个题目,有便于你的理解:

python 第12讲的课后习题第六题
https://fishc.com.cn/thread-175291-1-1.html
(出处: 鱼C论坛)

如果没看懂,那就继续问哈~


有没有大神能华哥思维导图,便于理解这段代码的意思?


这样动图我也不知道怎么弄到,但是你下载 PyCharm 和 Vs code 之类的编辑器都会有调试功能

你打上断点在你需要开始调试的地方,然后就能看到这图片这样代码一步一步运行的结果

关于 PyCharm 的安装,可以看看我的帖子哈~:

【萌新使用 PyCharm 必看】PyCharm 基础使用手册
https://fishc.com.cn/thread-173240-1-1.html
(出处: 鱼C论坛)

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-4 01:20:46 | 显示全部楼层    本楼为最佳答案   
  1. list1 = ['1.just do it','2.一切皆有可能','3.程序员','4.impossible']

  2. list2 = ['4.阿迪达斯','2.李宁','3.鱼C','1.耐克']

  3. list3 = []
  4. for slogan in list1:
  5.     print(f'第一层循环,slogan={slogan}')
  6.     for name in list2:
  7.         print(f'    第二层循环,name={name}')
  8.         print(f'        判断:slogan[0]={slogan[0]}  是否等于  name[0]={name[0]},所以判断结果为{slogan[0] == name[0]}')
  9.         print(f'        如果判断结果为假,进入第二层循环的下一个数')

  10.         if slogan[0] == name[0]:
  11.             print(f'        如果判断结果为真,将name={name}和slogan[2:]={slogan[2:]}做拼接,再添加进list3')
  12.             list3.append (name+':'+slogan[2:])

  13.             print (f'        list3内元素为{list3}')
复制代码


把上面代码运行一下看看能不能理解,或者看看这个思维导图是不是你想要的

思维导图.rar

30.17 KB, 下载次数: 3

售价: 1 鱼币  [记录]  [购买]

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-9-4 10:01:56 | 显示全部楼层
1、十年用不上一次的列表推导式,你只需要记住有这种写法,了解内容就好。

2、列表切片就是切到哪,从哪开始算。

3、pycharm自带这种分析工具,可以试试。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-5 08:13:33 | 显示全部楼层
Twilight6 发表于 2020-9-4 00:44
列表推导式你可以看看这个,从基础开始解析整个题目,有便于你的理解:

python 第12讲的课后习题第 ...

版主谢谢你,还没点开链接,我更需要的是思维导图来理解,另外pycharm我还没有学会使用,目前还是用IDE来进行基本的学习,3楼的哥哥回答的很棒!同时也非常感谢你!(*  ̄3)(ε ̄ *)^
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-5 08:14:29 | 显示全部楼层
heidern0612 发表于 2020-9-4 10:01
1、十年用不上一次的列表推导式,你只需要记住有这种写法,了解内容就好。

2、列表切片就是切到哪,从哪 ...

谢谢pycharm目前还没有学会使用,还是用的自带的IDE,谢谢你!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-26 20:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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