@个人学习笔记问题记录(python)(从列表开始,此次为列表推导式)(笔记问题来自fishc.com)
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)
最后的效果为:1,耐克:just do it
2.李宁:一切皆有可能
3.鱼C工作室:让编程改变世界
4,阿迪达斯:Impossible is nothing
其中第三行为列表推导式,如果将其转换成正常代码为:
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]: #判断前面的数字是否是一一对应的
list3.append(name + ‘:’ + slogan[2:]) #slogan[2:]是除了前面数字之后的话
for each in list3:
print(each)
问题:其中slogan[2:]的问题
其中的数字表示把每个字符串第三个索引开始取值并使用。
if条件语句中,name[0] == slogan[0]中的0可以让list1和list2中的数字相同的一一对应起来,比较每个字符串里索引值为0的那个数字是否相等,用来匹配两个列表中的字符串。