鱼C论坛

 找回密码
 立即注册
查看: 2175|回复: 4

[已解决]列表字符串化问题求助

[复制链接]
发表于 2016-7-24 18:35:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利用join参数,当列表是字符串不会报错,是数字就会报错,如何避免
>>> list1=["1","2","3","4"]
>>> ''.join(list1)
'1234'
>>> list1=[1,2,3,4]
>>> ''.join(list1)
Traceback (most recent call last):
  File "<pyshell#152>", line 1, in <module>
    ''.join(list1)
TypeError: sequence item 0: expected str instance, int found
最佳答案
2016-7-24 21:52:12
换个思路。
  1. >>> from functools import *
  2. >>> list1=[1,2,3,4]
  3. >>> print(reduce(lambda x, y: str(x) + str(y), list1))
  4. 1234
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-24 21:04:53 | 显示全部楼层
str(list1)[1:-1].replace(', ','')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-24 21:10:39 | 显示全部楼层
SixPy 发表于 2016-7-24 21:04
str(list1)[1:-1].replace(', ','')

print(''.join([str(x)for x in list1]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-24 21:52:12 | 显示全部楼层    本楼为最佳答案   
换个思路。
  1. >>> from functools import *
  2. >>> list1=[1,2,3,4]
  3. >>> print(reduce(lambda x, y: str(x) + str(y), list1))
  4. 1234
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-24 22:48:49 | 显示全部楼层
查帮助文档
str.join(iterable)
Return a string which is the concatenation of the strings in the iterable iterable. A TypeError will be raised if there are any non-string values in iterable, including bytes objects. The separator between elements is the string providing this method.

也就是说这个方法只能转换字符类型的,其他的类型会报TypeError这个错误。
所以你仍想要添加数字的话只能用其他的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 13:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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