python第十二节课课后习题有关列表解析
list1 = ['1.just 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
['1.耐克:just do it', '2.李宁:一切皆有可能', '3.鱼c工作室:让编程改变世界', '4.阿迪达斯:Impossible is Nothing']
>>> for each in list3:
print(each)
1.耐克:just do it
2.李宁:一切皆有可能
3.鱼c工作室:让编程改变世界
4.阿迪达斯:Impossible is Nothing
————各位鱼友,我想问一下这里为什么slogan=name 还有为什么是slogan
小白一个,可能问题比较弱智,谢谢大家 其实你不清楚的是“分片”,建议你百度了解一下。简单来说:是列表或字符串的第一个元素,这题里就是各编号1234,是三个元素到最后一个元素,这题里是序号加点以后的内容,就是那些口号。 1. 因为 list1 和 list2 中的字符串前面都有个编号, slogan=name 这里的意思便是如果编号相同的,就写在一起。
2. 1 里说了,目的是为了编号相同的字符串写在一起,可是两个字符串都有编号,写在一起只需要一个编号,所以就把写在后面的那个字符串的编号去掉,故下标从2开始。 1,slogan==name 是判断序号,如果序号一样就放在一起
2,slogan是内容,因为前两位是序号和点(.),要把这两个跳过去
希望有帮助 qiuyouzhi 发表于 2020-2-22 11:17
1,slogan==name 是判断序号,如果序号一样就放在一起
2,slogan是内容,因为前两位是序号和点(. ...
1.列表中给每个元素标号后,就算排列的时候不是按照标号顺序来,匹配的时候= 也是可以顺利匹配的吗?
2. name+':'+slogan 这一整个东西不是才算list3一个元素吗?
麻烦你了 {:5_111:} 削袋柚子皮 发表于 2020-2-22 11:43
1.列表中给每个元素标号后,就算排列的时候不是按照标号顺序来,匹配的时候= 也是可以顺利匹配的吗 ...
1,因为就是排序号的啊,如果还有没排完的他就会无限迭代
2,不是的,只要拼接在一起就是一个元素,然后会继续 qiuyouzhi 发表于 2020-2-22 12:15
1,因为就是排序号的啊,如果还有没排完的他就会无限迭代
2,不是的,只要拼接在一起就是一个元素,然后 ...
1.耐克:just do it
为什么耐克不是2位 而序号1是0位 .是1位 削袋柚子皮 发表于 2020-2-22 12:55
1.耐克:just do it
为什么耐克不是2位 而序号1是0位 .是1位
>>> a = ['a', 'b', 'c', 'd', 'de']
>>> b = a
>>> b
['c', 'd', 'de']
>>>
能看懂吗 qiuyouzhi 发表于 2020-2-22 12:59
能看懂吗
能呀{:5_99:}
可是'1.耐克:just do it' 这不是一个元素吗 用引号括起来的 我纠结的点是这个 削袋柚子皮 发表于 2020-2-22 13:18
能呀
可是'1.耐克:just do it' 这不是一个元素吗 用引号括起来的 我纠结的点是这个
对啊,这就是一个元素
然后就在这个元素的后边添加 qiuyouzhi 发表于 2020-2-22 13:21
对啊,这就是一个元素
然后就在这个元素的后边添加
“slogan是内容,因为前两位是序号和点(.),要把这两个跳过去”
‘1.just do it’
那既然都是一个整体了 为什么要删除slogan前面的序号就要用slogan 序号,点,slogan不都是在一对引号里面吗 削袋柚子皮 发表于 2020-2-22 13:34
“slogan是内容,因为前两位是序号和点(.),要把这两个跳过去”
‘1.just do it’
那既然都是一个整 ...
要把slogan和name拼接在一起啊 qiuyouzhi 发表于 2020-2-22 13:48
要把slogan和name拼接在一起啊
我好像明白了 应该是从list1里面选一个slogan 然后这一个元素里再
我前面一直觉得slogan应该等于['3.让编程改变世界', '4.Impossible is Nothing'] 削袋柚子皮 发表于 2020-2-22 14:16
我好像明白了 应该是从list1里面选一个slogan 然后这一个元素里再
我前面一直觉得slogan应该等 ...
对,然后和name里的元素拼接 本人也是新手
我也解不出來,後來看答案把老師的代碼還原出來,給你參考A對a B對b C對c D對d
list1=['1.aaaa','2.bbbb','3.cccc','4.dddd']
list2=['4.DDDD','2.BBBB','3.CCCC','1.AAAA']
for slogan in list1:
for name in list2:
list3=]
if slogan == name:
for i in list3:
print(i)
後來自己又練習了一次,發現滿好玩的
list1=["1.魯夫(路飞)","2.香吉士(山治)","3.娜美","4.索隆"]
list2=["4.我是路癡","1.我要成為海賊王","3.我有大奶","2.我愛娜美"]
for name in list1:
for slogan in list2:
list3=] #slogan 從字串的第二個字開始
if name == slogan: #若name的第一個字與slogan的第一個字相符
for i in list3:
print(i)
页:
[1]