python str 用法的疑问

wu5261092 2017-11-22 09:27:37
各位好,在自学Python随便敲代码玩的时候,下面这个问题有点不清楚其中的原理

代码如下
import random
ab=["a",1,"c",3,"e",5,"d"]
c=str(ab)
d=[str(i) for i in ab]
print(c)
print(d)
print("-".join(c))
print("-".join(d))

输出如下
['a', 1, 'c', 3, 'e', 5, 'd']
['a', '1', 'c', '3', 'e', '5', 'd']
[-'-a-'-,- -1-,- -'-c-'-,- -3-,- -'-e-'-,- -5-,- -'-d-'-]
a-1-c-3-e-5-d

疑问:为何使用join效果会是这样的呢?


...全文
170 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
extend 2017-11-23
  • 打赏
  • 举报
回复
c=str(ab)之后,c就不是列表了。虽然看上去形式和列表差不多。 >>> ab=["a",1,"c",3,"e",5,"d"] >>> c=str(ab) >>> type(c) <class 'str'> >>> c "['a', 1, 'c', 3, 'e', 5, 'd']" 双引号内的任何元素都是字符串序列的一部分。
碧水幽幽泉 2017-11-23
  • 打赏
  • 举报
回复
引用 1 楼 真糨糊的回复:
因为c是个字符串啊!这个字符串就是['a', 1, 'c', 3, 'e', 5, 'd'],所以使用了join后,就会在每个字符之间加上‘-’,而是个列表,所以使用了join后,只会把该列表里的每个元素之间加上‘-’后作为字符串输出
楼上正解!
真糨糊 2017-11-22
  • 打赏
  • 举报
回复
因为c是个字符串啊!这个字符串就是['a', 1, 'c', 3, 'e', 5, 'd'],所以使用了join后,就会在每个字符之间加上‘-’,而是个列表,所以使用了join后,只会把该列表里的每个元素之间加上‘-’后作为字符串输出

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧