跳至主要内容

如何转换字符串变量

How to Convert a String to Other Types

在处理数据时,通常需要将一种数据类型转换为另一种数据类型。在 Python 中,可以使用各种转换 函数 将不同的 数据类型 转换为字符串,反之亦然。本部分将介绍如何进行此操作。

转换为字符串

要将非字符串对象转换为 Python 中的字符串,可以使用 str() 函数。以下是如何转换数据的一些示例

# convert an integer to a string
num = 42
str_num = str(num)
print(str_num)  # outputs "42"
print(type(str_num))  # outputs "<class 'str'>"

# convert a float to a string
pi = 3.14159
str_pi = str(pi)
print(str_pi)  # outputs "3.14159"
print(type(str_pi))  # outputs "<class 'str'>"

# convert a boolean to a string
flag = True
str_flag = str(flag)
print(str_flag)  # outputs "True"
print(type(str_flag))  # outputs "<class 'str'>"

请注意,如果你尝试转换没有定义字符串表示形式的对象,你可能会得到一个 TypeError 异常。

Unicode 转换为字符串

在 Python 中,可以使用 encode 方法将 Unicode 字符串转换为常规字符串(也称为字节字符串)。

以下是一个示例

unicode_string = "Hello, World! 🌍"
byte_string = unicode_string.encode("utf-8")
print(byte_string) # Output: b'Hello, World! \xf0\x9f\x8c\x8d'

在此示例中,encode 方法用于将 unicode_string 转换为 UTF-8 格式编码的字节字符串。生成的 byte_string 变量包含原始字符串的字节表示形式。

请注意,输出中的 b 前缀表示该值是字节字符串,而不是常规字符串。如果你想将字节字符串转换回常规字符串,可以使用 decode 方法

new_unicode_string = byte_string.decode("utf-8")
print(new_unicode_string) # Output: Hello, World! 🌍

在此示例中,decode 方法用于将字节字符串转换回 UTF-8 格式编码的 Unicode 字符串。生成的 new_unicode_string 变量包含原始字符串。

字符串转换为列表

要将字符串转换为其各个字母的列表,可以在 Python 中使用内置的 list() 函数。以下是一个示例

my_string = "hello"
letters_list = list(my_string)
print(letters_list)

这将输出

['h', 'e', 'l', 'l', 'o']

或者,你可以使用循环遍历字符串并将每个字母追加到新列表中

my_string = "hello"
letters_list = []
for letter in my_string:
    letters_list.append(letter)
print(letters_list)

这还将输出

['h', 'e', 'l', 'l', 'o']

字符串转换为布尔值

可以使用内置的 bool() 函数将字符串转换为布尔值。

默认情况下,以下字符串被视为 True

  • 任何非空字符串
  • 字符串“True”(不区分大小写)

另一方面,以下字符串被视为 False

  • 空字符串
  • 字符串“False”(不区分大小写)
  • 任何等于 0 的数字值(即“0”或“0.0”)

以下是一些示例

>>> bool("hello")
True
>>> bool("")
False
>>> bool("True")
True
>>> bool("false")
False
>>> bool("0")
False
>>> bool("1")
True

如果你有一个不属于上述值的字符串,并且你想将其视为布尔值,可以使用 if 语句 或条件表达式定义自己的转换规则。

字符串转换为十六进制

可以使用 encode() 方法和 'hex' 编码将字符串转换为其十六进制表示形式。让我们通过一个示例了解如何进行编码

string = "Hello, world!"
hex_string = string.encode('hex')

print(hex_string) # Output: 48656c6c6f2c20776f726c6421

在 Python 3 中,可以使用 hex() 方法将字符串转换为其十六进制表示形式。以下是一个示例

string = "Hello, world!"
hex_string = ''.join([hex(ord(c))[2:] for c in string])

print(hex_string) #Output: 48656c6c6f2c20776f726c6421

join() 方法

此方法允许你使用分隔符字符串将可迭代对象(例如列表、元组或字符串)的元素连接到单个字符串中。

使用 join() 方法的语法如下

separator_string.join(iterable)

其中,separator_string 是你想要用来分隔可迭代对象中元素的字符串,iterable 是你想要连接的元素序列。

例如,如果你有一个字符串列表,并且你想将它们连接到一个用逗号分隔的单个字符串中,可以使用以下代码

my_list = ['mango', 'pineapple', 'banana']
separator = ', '
result = separator.join(my_list)
print(result)  # Output: "mango, pineapple, banana"

在此示例中,join() 方法在分隔符字符串上调用,其中 my_list 列表作为可迭代参数。结果字符串被分配给 result 变量并打印到控制台。

请注意,join() 方法还可以与其他类型的可迭代对象一起使用,例如 元组 或集合。此外,如果你想在没有任何分隔的情况下连接元素,可以使用空字符串作为分隔符。

与我们一起做出贡献!

请随时在 GitHub 上为 Python 教程做出贡献:创建一个 fork,更新内容并发出拉取请求。

Profile picture for user almargit
Python 开发者,内容经理。
Profile picture for user AliaksandrSumich
更新:2024 年 05 月 03 日 - 21:53
Profile picture for user angarsky
已审阅并批准