作业第012讲列表:一个打了激素的数组3 第六题
list1 = ['a','b','c','d']list2 = ['4','3','2','1']
list3 = for slogan in list1 for name in list2 if slogan == name ]
for each in list3:
print(each)
什么都没打印出来,我试着把list3的东西改了,但也还是得不到老师的答案
你的数据本身就不对啊 因为你这个条件是不可能成立的:if slogan == name 正确的数据是list1 = ['1.Jost do It', '2.一切皆有可能', '3.让编程改变世界', '4. Impossible is Nothing']
list2 = ['4.阿迪达斯', '2.李宁', '3.鱼C工作室', '1.耐克'] list3 = for slogan in list1 for name in list2 if slogan == name]
将这一句改为正常的循环结构如下:
list3=[]
for slogan in list1:
for name in list2:
if slogan == name:
list3.append(name + ':' + slogan)
你的list1和list2中没有满足slogan == name条件的元素,而且slogan 也会下标溢出 sunrise085 发表于 2020-5-26 13:28
list3 = for slogan in list1 for name in list2 if slogan == name]
将 ...
但是list 1 2里的东西不是可以自己随意改动的吗, Twilight6 发表于 2020-5-26 13:25
因为你这个条件是不可能成立的:
但是如果按照老师的'1.Jost do It', '4.阿迪达斯' 也是不成立的啊 Vitacoco 发表于 2020-5-28 04:53
但是如果按照老师的'1.Jost do It', '4.阿迪达斯' 也是不成立的啊
你没理解这个程序是怎么运行的slogan == name这个是判断slogan 和 name 的第一个字符是否相等
你的代码是不可能相等的,一个是数字,一个是字母,老师的可以相等list1=['1.just do it','2.一切皆有可能','3.编程改变世界','4. impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.工作室','1.耐克']没发现老师的代码,两个列表前面的编号都是1~4吗?他们比较 是第一个字符,肯定有机会相等,而你的是不可能相等的 Vitacoco 发表于 2020-5-28 04:52
但是list 1 2里的东西不是可以自己随意改动的吗,
可以改动,但不是随意改动。list1的元素的第一个字符若在list2的所有元素的第一个字符中找不到,那就不会执行if语句,也就不会有元素被添加到list3中。
list3 = for slogan in list1 for name in list2 if slogan == name]
这是一个迭代。slogan从list1中寻找,name从list2中寻找,若两个字符串的第一个字符一样,则进行前面的拼接,即name + ':' + slogan
举例说明:
当name='1.耐克'时,会从list2中找到slogan='1.just do it',因为只有这个元素符合条件slogan == name,此时list3中对应的元素由这个语句构成name+':'+slogan,即‘1.耐克’和':'和‘just do it’三个字符串拼接而成,也即‘1.耐克:just do it’,list3的其他元素类似。
而你给出的两个列表,当name为 'a' 时,根本不可能从list2中找到合适的元素slogan使得slogan == name,所以也就不会执行if后面的语句了,结果就是list3中没有任何内容。 sunrise085 发表于 2020-5-28 08:33
可以改动,但不是随意改动。list1的元素的第一个字符若在list2的所有元素的第一个字符中找不到,那就不 ...
求教, 为什么用slogan,这是什么意思??这里是指从list1 中的 开始查找的意思? 或者这个 bujust_h 发表于 2020-5-28 09:40
求教, 为什么用slogan,这是什么意思??这里是指从list1 中的 开始查找的意思? 或者这个
我知道什么意思 切片。 取 2开始后面的内容 。。 是因为“1.”“2.”是重复的
bujust_h 发表于 2020-5-28 09:40
求教, 为什么用slogan,这是什么意思??这里是指从list1 中的 开始查找的意思? 或者这个
此时list3中对应的元素由这个语句构成name+':'+slogan,即‘1.耐克’和':'和‘just do it’三个字符串拼接而成,也即‘1.耐克:just do it’,
请认真看我在9楼写的回复。
slogan是切片。即slogan的第二个元素到最后一个元素。
页:
[1]