python字符串转化列表_Python列表到字符串的转换[通俗易懂]

python字符串转化列表_Python列表到字符串的转换[通俗易懂]python字符串转化列表Sometimeswewanttoconvertthelisttoastringsothatwecanprintitorlogitfordebuggingpurposes.Inthistutorial,wewilllearnhowtoconvertalisttostringinaPythonpro…

大家好,又见面了,我是你们的朋友全栈君。

python字符串转化列表

Sometimes we want to convert the list to a string so that we can print it or log it for debugging purposes. In this tutorial, we will learn how to convert a list to string in a Python program.

有时我们希望将列表转换为字符串,以便我们可以打印或记录该列表以进行调试。 在本教程中,我们将学习如何在Python程序中将列表转换为字符串。

Python列表到字符串的转换 (Python List to String Conversion)

If the list contains a string, int, floats then its elements values are getting printed when we print the list.

如果列表包含字符串int浮点数,则在我们打印列表时将打印其元素值。

l1 = [1, 2, 3]
print(l1)

l1 = ['A', 'B', 'C']
print(l1)

l1 = ['A', 'B', 'C', 1, 2, 3.5]
print(l1)

Output:

输出:

[1, 2, 3]
['A', 'B', 'C']
['A', 'B', 'C', 1, 2, 3.5]

If you don’t want brackets in the output, you can use string strip() function or slicing to remove them.

如果不想在输出中使用括号,则可以使用字符串strip()函数或切片将其删除。

print(str(l1).strip('[]'))
print(str(l1)[1:-1])

Output:

输出:

'A', 'B', 'C', 1, 2, 3.5
'A', 'B', 'C', 1, 2, 3.5

Python对象列表到字符串的转换 (Python List of Objects to String Conversion)

Let’s see what happens when our list contains custom objects.

让我们看看列表包含自定义对象时会发生什么。

class Data:
    id = 0

    def __init__(self, i):
        id = i

l1 = [Data(10), Data(20)]
print(l1)

Output:

输出:

[<__main__.Data object at 0x10f3dd320>, <__main__.Data object at 0x10f3dd2e8>]

The information is not useful because it doesn’t contain any information about Data objects.

该信息无用,因为它不包含有关Data对象的任何信息。

When we print a list, it tries to invoke its elements __repr__() function. Since our object doesn’t define its own repr() function, its superclass object repr() is called which prints this information.

当我们打印列表时,它会尝试调用其元素__repr __()函数。 由于我们的对象没有定义自己的repr()函数,因此将调用其超类对象repr()来打印此信息。

Let’s define __repr__() function for Data class as follows:

让我们为Data类定义__repr __()函数,如下所示:

def __repr__(self):
        return f'Data[{self.id}]'

Now the output of above print statement will be:

现在,上述打印语句的输出将是:

[Data[0], Data[0]]

Sometimes an object defines only __str__() function and doesn’t define __repr__() function. In that case, we can convert the list to string by calling str() function on its elements.

有时,一个对象仅定义__str __()函数,而没有定义__repr __()函数。 在这种情况下,我们可以通过在其元素上调用str()函数将列表转换为字符串。

This can be done by using string join() function with an iterator as argument or by using map() function.

这可以通过使用带有迭代器作为参数的字符串join()函数或通过使用map()函数来完成

Let’s define __str__() function for Data class as:

让我们为Data类定义__str __()函数为:

def __str__(self):
        return f'D[{self.id}]'

Now we can get string representation of the list elements and print it using following code:

现在,我们可以获取列表元素的字符串表示形式,并使用以下代码进行打印:

print(', '.join(map(str, l1)))
print(', '.join(str(e) for e in l1))

Output:

输出:

D[0], D[0]
D[0], D[0]

Note that if __str__() function is not defined for an object, str() function fallback to calling __repr__() function. In that case __repr__() should return string object.

请注意,如果未为对象定义__str __()函数,则str()函数将回退到调用__repr __()函数。 在这种情况下,__repr __()应该返回字符串对象。

If we remove __str__() function from Data class, then above join() snippets output will be:

如果我们从Data类中删除__str __()函数,则以上join()片段输出将为:

Data[0], Data[0]
Data[0], Data[0]

We can specify our own delimiter when using join() function.

使用join()函数时,我们可以指定自己的定界符。

print('|'.join(map(str, l1)))
print('#'.join(str(e) for e in l1))

Output:

输出:

D[0]|D[0]
D[0]#D[0]
GitHub Repository.
GitHub存储库中检出完整的python脚本和更多示例。

翻译自: https://www.journaldev.com/23655/python-list-to-string-conversion

python字符串转化列表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142963.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle中decode函数用法解析以及常用场景「建议收藏」

    Oracle中decode函数用法解析以及常用场景「建议收藏」1.decode函数的两种形式第一种形式含义解释:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)该函数的含义如下:IF条件=值1THEN    RETURN(翻译值1)ELSIF条件=值2THEN    RETURN(翻译值2)    ……ELSIF条件=值nTHEN    RETURN(翻译值n)ELSE    RET…

    2022年7月25日
    9
  • AutoEventWireup指令分析

    AutoEventWireup指令分析指令:指定当页和用户控件编译器处理ASP.NETWeb窗体页(.aspx)和用户控件(.ascx)文件时所使用的设置。在编译时发生作用,有些是如在asp.net2.0中将 后产生       protectedoverrideboolSupportAutoEvents{           get{               returnfalse; 

    2022年5月8日
    49
  • Oracle insert all语句介绍

    Oracle insert all语句介绍Oracle中insert语句的高级用法,INSERTALL语句介绍:1、无条件insertall全部插入CREATETABLEt1(product_idNUMBER,product_nameVARCHAR2(80),MONTHNUMBER);INSERTINTOt1VALUES(111,’苹果’,1);INSERTINTOt1VALUES(222,’橘…

    2022年7月25日
    12
  • rabbitmq基本原理_计算尺使用的是什么原理

    rabbitmq基本原理_计算尺使用的是什么原理RabbitMQ使用以及原理解析RabbitMQ是一个由erlang开发的AMQP(AdvanvedMessageQueue)的开源实现;在RabbitMQ官网上主要有这样的模块信息,Workqueues消息队列,Publish/Subscribe发布订阅服务,Routing,Topics,RPC等主要应用的模块功能.几个概念说明:Broker:它提供一种传输服务,它的角色…

    2022年9月25日
    0
  • Flume+Kafka整合案例实现

    Flume+Kafka整合案例实现 一、为什么要集成Flume和Kafka我们很多人在在使用Flume和kafka时,都会问一句为什么要将Flume和Kafka集成?那首先就应该明白业务需求,一般使用Flume+Kafka架构都是希望完成实时流式的日志处理,后面再连接上Flink/Storm/SparkStreaming等流式实时处理技术,从而完成日志实时解析的目标。第一、如果Flume直接对接实时计算框架,当数据采集速…

    2022年6月23日
    28
  • MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化

    MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化1.锐化1.锐化(Sharpening):图像在传输或变换过程中(如未聚焦好)、受到各种干扰而退化,典型的是图像模糊,而图像的判读和识别中,常需突出目标的轮廓或边缘信息。2.边缘锐化:主要增强图像的轮廓边缘、细节(灰度跳变部分灰度跳变部分),以突出图像中景物的边缘或纹理,形成完整的物体边界,使边缘和轮廓模糊的图像清晰,又叫空域高通滤波(俗称为勾边处理)。从数学角度看,图像模糊相当于图像………

    2025年6月20日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号