Hs2658689088 发表于 2022-6-8 22:32:36

python课后练习题问题

list3 = for slogan in list1 for name in list2 if slogan == name] https://xxx.ilovefishc.com/forum/201310/12/044035qddrqkmrqod4cqmr.png
这个slogan这个2哪来的啊????这个是啥啊

森亦简 发表于 2022-6-8 22:39:13

这里的slogan,是指在list1中的字符串,选取从2号位置开始到末尾的部分
因为list1中的口号前面都有数字如1.,2.占了2个位置,python中记数是从0开始的如0,1,2...
所以,要想获得单独的口号,就得从第3个位置,也就是slogan开始

临时号 发表于 2022-6-8 22:46:50

本帖最后由 临时号 于 2022-6-8 22:48 编辑

slogan指的是将从slogan这个字符串标号2位置到字符串结束的位置重新组成一个新的字符串,这叫做分片

Victor0321 发表于 2022-6-8 22:46:57

首先你要看明白这个list3的结构 =【】 是一个列表推导式,ok 然后在看里面的结构
先看for前面的列表元素,name + ':' + slogan ok , 有两个变量,然后我们再去看for语句
有两个for 语句对吧,第一个 for slogan in list1 ,list1 里每一个元素遍历的话 拿一个元素来说应该是'1.Just do It' 所以slogon 就是这个'1.Just do It' 而slogon 你仔细看slogon 是不是一个字符串 所以也能遍历,index为2后面的不就是'Just do It'么。依次类推哈 第二个循环就更好理解了 就是list2里所有的元素
而最后那个if语句,其实很简单拉 他就是看slogon 和name的第一个index 也就是数字1234 需要匹配 才能连上。所以整体来说这个列表推导式 走了4 *4 16次哈。
页: [1]
查看完整版本: python课后练习题问题