Python实现str和list互转

1,Str转List

无特殊要求时,转换非常简单

a = 'a b c'

print(list(a))

输出结果:

['a', ' ', 'b', ' ', 'c']

如果要求作为整体加入List时

a = 'a b c'
b = []

c1 = list(a)
b.append(a) # 可以将str追加到list中

print(c1)
['a', ' ', 'b', ' ', 'c']

print(b) # !!! 期望的结果 !!!
['a b c']

 

2,List转Str(主要想说这个哈

ll = ['abc', 'b', 'c']

ls1 = str(ll)
ls2 = ''.join(ll)

print(ls1)   # 此时ls1就是 '['abc', 'b', 'c']'

print(ls2)

两种情况相差很大,输出结果:

>>> ['abc', 'b', 'c']
>>> abcbc

 

### 将带有括号的字符串转换为列表 在 Python 中,可以使用内置函数 `ast.literal_eval` 或者通过组合其他方法来实现将带方括号的字符串转换成实际的列表对象。以下是两种常见的解决方案: #### 方法一:使用 `ast.literal_eval` `ast.literal_eval` 是一种安全的方式,用于解析表示 Python 数据结构的字符串。它能够处理类似于 `[...]` 的字符串并将其转化为真实的列表。 ```python import ast str_with_brackets = "[1, 2, 3, 'a', 'b']" converted_list = ast.literal_eval(str_with_brackets) print(converted_list) # Output: [1, 2, 3, 'a', 'b'] ``` 这种方法适用于输入字符串严格遵循合法的 Python 表达式的场景[^4]。 #### 方法二:手动去除括号并通过 `split()` `map()` 转换 如果字符串的内容较为简单(例如仅包含数字),可以通过移除外部的方括号,并利用 `split()` 函数分割字符串,再借助 `map()` 进行数据类型的转换。 ```python str_with_brackets = "[1, 2, 3, 4]" clean_str = str_with_brackets.strip('[]') # 去掉外层的 [] elements = clean_str.split(",") # 使用逗号分隔各个元素 converted_list = list(map(int, elements)) # 将每个元素转为整数类型 print(converted_list) # Output: [1, 2, 3, 4] ``` 此方式适合于更简单的字符串形式,尤其是当不需要考虑复杂嵌套或者混合数据类型的情况时[^5]。 需要注意的是,在采用第二种方法时要特别注意原始字符串的数据格式是否一致以及是否存在潜在异常情况下的错误处理机制。 --- ### 性能对比与适用范围 对于复杂的、可能含有多种数据类型的序列化字符串推荐优先选用基于 `ast.literal_eval` 的方案因为它更加健壮且无需额外假设关于内部项的具体构成;而针对特定模式下相对固定的纯数值数组则可以直接运用字符串操作加映射变换达到目的从而获得更高的执行效率[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值