鱼C论坛

 找回密码
 立即注册
查看: 584|回复: 4

[已解决]字符串转列表

[复制链接]
发表于 2019-6-29 12:20:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问 [a,[a,b,[a,b,c,[a,b,c,d]],[a,b,c,d]],c,d] ..这个字符串,应该怎么转成 列表呢? [‘a’, ‘[ ‘a’, ‘b’, ‘[ ‘a’, ‘b’, ‘c’, [ ‘a’, ‘b’, ‘c’, ‘d’ ]’ ]’, ‘[ ‘a’, ‘b’, ‘c’, ‘d’ ]‘ ]’, ’c‘, ’d‘] 就是,
像这个列表,每个列表里面都是4个值。
第一个最大的列表里面是a 和 ‘[ ‘a’, ‘b’, ‘[ ‘a’, ‘b’, ‘c’, [ ‘a’, ‘b’, ‘c’, ‘d’ ]’ ]’, ‘[ ‘a’, ‘b’, ‘c’, ‘d’ ]‘ ]’  和 c 和d
第二个是‘[ ‘a’, ‘b’, ‘[ ‘a’, ‘b’, ‘c’, [ ‘a’, ‘b’, ‘c’, ‘d’ ]’ ]’里面, a , b , c , ‘[ ‘a’, ‘b’, ‘c’, [ ‘a’, ‘b’, ‘c’, ‘d’ ]’  
...
最佳答案
2019-6-29 12:47:15
lou 发表于 2019-6-29 12:27
input : [a,[a,b,[a,b,c,[a,b,c,d]],[a,b,c,d]],c,d]  
output:  [‘a’, ‘[ ‘a’, ‘b’, ‘[ ‘a’, ...

转成列表的话补充一下,

  1. import re

  2. s = 'f(a, g(a, b, f(a,b,c)), b, c)'
  3. s1 = re.sub('\w*\(', '[', s) #过滤括号前的字母
  4. s2 = re.sub('\)', ']', s1)
  5. s3 = re.sub('(\w)', r"'\1'", s2)
  6. lst = eval(s3)
  7. print(type(lst))
  8. print(lst)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-29 12:23:11 | 显示全部楼层
给个标准输入输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 12:27:11 | 显示全部楼层
新手·ing 发表于 2019-6-29 12:23
给个标准输入输出

input : [a,[a,b,[a,b,c,[a,b,c,d]],[a,b,c,d]],c,d]  
output:  [‘a’, ‘[ ‘a’, ‘b’, ‘[ ‘a’, ‘b’, ‘c’, [ ‘a’, ‘b’, ‘c’, ‘d’ ]’ ]’, ‘[ ‘a’, ‘b’, ‘c’, ‘d’ ]‘ ]’, ’c‘, ’d‘]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 12:45:08 | 显示全部楼层
lou 发表于 2019-6-29 12:27
input : [a,[a,b,[a,b,c,[a,b,c,d]],[a,b,c,d]],c,d]  
output:  [‘a’, ‘[ ‘a’, ‘b’, ‘[ ‘a’, ...
  1. import re

  2. s = 'f(a, g(a, b, f(a,b,c)), b, c)'
  3. s1 = re.sub('\w*\(', '[', s) #过滤括号前的字母
  4. s2 = re.sub('\)', ']', s1)
  5. s3 = re.sub('(\w)', r"'\1'", s2)
  6. print(s3)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 12:47:15 | 显示全部楼层    本楼为最佳答案   
lou 发表于 2019-6-29 12:27
input : [a,[a,b,[a,b,c,[a,b,c,d]],[a,b,c,d]],c,d]  
output:  [‘a’, ‘[ ‘a’, ‘b’, ‘[ ‘a’, ...

转成列表的话补充一下,

  1. import re

  2. s = 'f(a, g(a, b, f(a,b,c)), b, c)'
  3. s1 = re.sub('\w*\(', '[', s) #过滤括号前的字母
  4. s2 = re.sub('\)', ']', s1)
  5. s3 = re.sub('(\w)', r"'\1'", s2)
  6. lst = eval(s3)
  7. print(type(lst))
  8. print(lst)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 17:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表