python 列表 字典 string 互相转换

本文详细介绍了Python中几种常见数据类型的互相转换方法,包括字典与字符串、列表与字符串之间的转换,并提供了具体示例代码。文章还提到了一些Python编码方面的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1: dict 转为 string   使用str方法

<span style="font-size:18px;">a = {1: 'a', 2: 'b'}
a = str(a)
print a, type(a)
-----
{1: 'a', 2: 'b'} <type 'str'></span>

2: string 转为 dict  使用eval方法

<span style="font-size:18px;">a = "{1: 'a', 2: 'b'}"
a = eval(a)
print a, type(a)
------
{1: 'a', 2: 'b'} <type 'dict'></span>

3: list 转为string  使用join方法, 单引号内为字符连接的符号, 可以为空,也可以为 '-' 等符号

<span style="font-size:18px;">a = ['hello', 'world']
b = ' '.join(a)
print b, type(b)
c= '-'.join(a)
print c, type(c)

----
hello world <type 'str'>
hello-world <type 'str'></span>

4: string 转为 list  这个就很方便了,使用split函数,参数为分隔符,可以为空

<span style="font-size:18px;">a = u'hello world'
b = a.split(' ')
print b, type(b)
c = a.split('o')
print c, type(c)
-------
[u'hello', u'world'] <type 'list'>
[u'hell', u' w', u'rld'] <type 'list'></span>

关于string前面的u, 在python2.x中,对字符的兼容还不是很好, 使用3.x 问题不大.   养成一个良好的习惯, 在string前面加一个u, 会省去很多编码问题. 如果你有编码问题,可以参阅这篇文章,写的很好.

python 编码问题注意点


### Python 中的对象类型强制转换Python 中,可以通过内置函数或者特定的方法来进行对象类型的强制转换。以下是几种常见的方法: #### 使用内置函数进行类型转换 Python 提供了一些内置函数用于不同数据类型的相互转换。这些函数可以直接作用于目标对象并返回指定类型的实例。 - **`int()`**: 将其他类型的数据转化为整数。 ```python float_value = 3.14 int_value = int(float_value) # 转换为整数, 结果为 3[^2] ``` - **`float()`**: 把字符串或其他数值转成浮点数。 ```python str_value = "10" float_value = float(str_value) # 转换为浮点数, 结果为 10.0[^3] ``` - **`str()`**: 可以把任何类型的数据转化成字符串形式。 ```python num_value = 123 str_value = str(num_value) # 转换为字符串, 结果为 '123'[^4] ``` - **`list(), tuple(), dict(), set()`**: 这些函数可以用来创建列表、元组、字典以及集合,并接受可迭代对象作为参数。 ```python string_data = "abc" list_data = list(string_data) # ['a', 'b', 'c'][^5] dictionary_keys = {"key": "value"} keys_list = list(dictionary_keys.keys()) # ['key'][^6] ``` #### 自定义复杂场景下的类型转换逻辑 对于更复杂的类型转换需求(比如处理超出 `sys.maxsize` 的大整数),可能需要编写自定义函数来满足特殊业务规则。例如,在某些情况下希望截断过大值使之适应系统限制,则可通过如下方式实现: ```python import sys def long_to_int(value): max_int = sys.maxsize if isinstance(value, int): return value if abs(value) <= max_int else (max_int * (-1 if value < 0 else 1)) elif isinstance(value, float): truncated_val = int(value) return truncated_val if abs(truncated_val) <= max_int else (max_int * (-1 if value < 0 else 1)) raise ValueError("Unsupported type") example_long = 9223372036854775808 # 大于 sys.maxsize converted_value = long_to_int(example_long) # 返回最大正整数[^7] print(converted_value) ``` 此代码片段展示了如何手动控制从长整型到标准整型的映射过程,同时考虑到了边界条件。 #### 注意事项 需要注意的是,虽然理论上能够通过多种手段完成类型间的互相转变,但在实际开发过程中应当谨慎对待隐式的类型变换操作以免引发难以追踪错误。另外并非所有的组合都存在合理的解释路径;强行执行不当转型可能会丢失原始信息甚至抛出异常。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值