鱼C论坛

 找回密码
 立即注册
查看: 2705|回复: 5

拼接的时候到底是用逗号还是用加号的问题

[复制链接]
发表于 2016-12-26 10:39:39 | 显示全部楼层 |阅读模式
2鱼币

题目是这样的

题目是这样的

题目是这样的
答案是:
list3 = [name +":" +slogan[2:] for slogan in list1 for name in list2 if name[0]==slogan[0]]

但是问题来了,如果我把list3 写成
list3 = [name ":" slogan[2:] for slogan in list1 for name in list2 if name[0]==slogan[0]]

程序就无法运行了
求解为什么只能用+ ,而不能用 ,    ?

最佳答案

查看完整内容

逗号不是字符串的拼接,而是隔开几个参数。之所以你觉得逗号也是拼接,是因为在print函数中如果用+拼接字符串会输出一个大字符串,用逗号分隔则是输入几个字符串,而print将他们输出在一起。注意只是显示在一起,而不是拼接。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-26 10:39:40 | 显示全部楼层
逗号不是字符串的拼接,而是隔开几个参数。之所以你觉得逗号也是拼接,是因为在print函数中如果用+拼接字符串会输出一个大字符串,用逗号分隔则是输入几个字符串,而print将他们输出在一起。注意只是显示在一起,而不是拼接。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-26 12:56:48 | 显示全部楼层
冬雪雪冬 发表于 2016-12-26 11:22
逗号不是字符串的拼接,而是隔开几个参数。之所以你觉得逗号也是拼接,是因为在print函数中如果用+拼接字符 ...

感谢~~但是我还是有点小疑惑

如果我把列表推导式展开
list1 = ['1.just do it', '2.一切皆有可能','3.让编程改变世界','4.IM平possible']
list2 = ['4.阿迪达斯','2.李宁','3.鱼C','1.耐克']
for slogan in list1:
    for name in list2:
        if name[0] ==slogan[0]:
            print (name,':',slogan[2:])

print 那里 中间用逗号隔开,整个程序是可以运行的,然是如果是最开始的方式,加号变逗号,整个程序就报错了,请问这是为什么呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-26 13:35:45 | 显示全部楼层
Little.L 发表于 2016-12-26 12:56
感谢~~但是我还是有点小疑惑

如果我把列表推导式展开

这个是print函数,可以接收多个参数。前面的是列表推导式for前只能是一个值
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-26 13:41:11 | 显示全部楼层
冬雪雪冬 发表于 2016-12-26 13:35
这个是print函数,可以接收多个参数。前面的是列表推导式for前只能是一个值

原来如此!!感谢!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-7 11:04:35 | 显示全部楼层
学习了,
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表