|  | 
 
| 
>>>list1 = ['1.just do it','2.一切皆有可能','3.让编程改变世界','4.impossible is nothing']
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  >>>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、slogan[2:]是把list1中的最后两个字符串拿出来吗?如果是这样的话对后续有什么用呢?
 2、if条件下slogan[0] == name[0]怎么能够让他们一一匹配呢?
 
你可以自己试一下:
 1. 【slogan[2:] for slogan in list1】结果是:
 ['just do it', '一切皆有可能', '让编程改变世界', 'impossible is nothing']
 就是把数字加‘.'去掉之后的字符串表示出来(从第三个字符开始表示,去掉前两个字符)。
 2. list3的内容你修改下:
 list3 = [name, slogan for slogan in list1 for name in list2 if slogan[0] == name[0]]
 这样能看懂么?
 就是定义两个变量,其内容分别从list1 和 list2中提取,条件是:
 slogan[0] == name[0]
 即每个字符串的前2个内容相同。(如'1.' == '1.' )
 
 | 
 |