鱼C论坛

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

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

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

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

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

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

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

list3 = []
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append (name+':'+slogan[2:])
            print (list3)

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

while循环

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

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

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

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

            print (f'        list3内元素为{list3}')

把上面代码运行一下看看能不能理解,或者看看这个思维导图是不是你想要的
想知道小甲鱼最近在做啥?请访问 -> 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论坛)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

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

            print (f'        list3内元素为{list3}')

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

思维导图.rar

30.17 KB, 下载次数: 3

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

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

3、pycharm自带这种分析工具,可以试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

使用道具 举报

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

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

谢谢pycharm目前还没有学会使用,还是用的自带的IDE,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 20:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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