前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Join()和 List()的 6 种化学反应

Join()和 List()的 6 种化学反应

作者头像
Python知识大全
发布2020-07-24 14:54:11
1.2K0
发布2020-07-24 14:54:11
举报
文章被收录于专栏:Python 知识大全

下酒菜

代码语言:javascript
复制
class Obj:
    def __init__(self, val):
        self.val = val
    def __str__(self):
        return str(self.val)
lst = [Obj(0), Obj(1), Obj(2), Obj(4)]

# 输出
0124
1 Join + List + Str

首先,该string.join(iterable)方法是使用iterable字符串作为输入,并使用string将它们串起来。

其次,创建列表

最后使用 str(...) 函数将任何 Python 对象转换为字符串表示形式。

结合这三个功能,可以得到以下简单的解决方案,以连接对象列表的字符串表示形式。

代码语言:javascript
复制
print(''.join([str(x) for x in lst]))
# 0124
2 十转八 Join +Generator Expression(生成器)+ Str

由于join()函数需要一个字符串列表,因此需要使用 str(x)函数将所有对象转换为纯字符串。

图片来源互联网

但是,一次转换一个对象就足够了,因为join函数只需要一个可迭代的输入即可。(所有Python列表都是可迭代的,但并非所有可迭代对象都是Python列表)

要释放内存,可以使用生成器表达式(无需创建列表所需的方括号):

代码语言:javascript
复制
print(''.join(str(x) for x in lst))
# 0124

3 Join + Generator Expression(生成器) + Custom String Representation(自定义字符串)

对 2 稍作修改是使用自己定义字符串的表示形式,不是使用__str__方法实现。

代码语言:javascript
复制
print(''.join(str(x.val) for x in lst))# 0124
4 join+ map + Lambda

map() 函数将每个元组转换为字符串值,并且使用 join() 方法将字符串集合转换为单个字符串。

Lambda 函数是未在名称空间中定义的匿名函数 。

语法为:lambda <argument name(s)> : <return expression>

代码语言:javascript
复制
print(''.join(map(lambda x: str(x), lst)))# 0124
5 Join + Map + Str

无需使用 lambda 函数将每个列表元素转换为字符串形式。

代码语言:javascript
复制
print(''.join(map(str, lst)))# 0124
6 Simple Loop(循环) + Str

当然,还可以通过使用简单的for循环构建字符串解决问题

代码语言:javascript
复制
s = ''for x in lst:    s += str(x)print(s)# 0124

---End---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 知识大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Join + List + Str
  • 2 十转八 Join +Generator Expression(生成器)+ Str
  • 4 join+ map + Lambda
  • 5 Join + Map + Str
  • 6 Simple Loop(循环) + Str
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档