|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
list1 = ['1.Just do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3 = [name+':'+slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
for each in list3:
print(each)
这个程序我有点不太明白。如果slogan[2:]的话 不是只有鱼c工作室和耐克么。然后if slogan[0] == name[0]也有点不太明白。
是不是说列表slogan的第0号位置 和 列表name第0号位置的值相等,如果是这样的话,如何才能判断相等呢?数字么?
本帖最后由 sunnychou 于 2017-9-26 09:12 编辑
首先他的目标是,把对应位置链接起来,
他表示 if slogan[0] == name[0] ,就把这些对应相同的地方加起来,组合成一个新的,不是下标,如果是下标的话,他的列表第一个元素是'4.阿迪达斯',你可以把这个slogan[0] 和name[0]打印看一下,此处类似切片,打印name[3],slogan[3]看看,相同就组合
- #------------列表推导式--------#
- 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[0] == name[0]:
- print(name[2])
- list3.append(name + ':' + slogan[2:])
- for i in list3:
- print(i)
复制代码
结果
- 耐
- 李
- 鱼
- 阿
- 1.耐克:Just do It
- 2.李宁:一切皆有可能
- 3.鱼c工作室:让编程改变世界
- 4.阿迪达斯:Impossible is Nothing
复制代码
2)如果不是从slogan[2:]切片的话,那么就会出现两个 ->1.
- 1.耐克:1.Just do It
- 2.李宁:2.一切皆有可能
- 3.鱼c工作室:3.让编程改变世界
- 4.阿迪达斯:4.Impossible is Nothing
复制代码
|
|