【发布时间】:2013-11-05 21:37:39
【问题描述】:
我有一个嵌套的字符串列表:
d = [['one\\alpha','two\\beta','three\\gamma'],['foo\\data','bar\\params']]
我想做的是给列表d返回一个列表:
data = [['alpha','beta','gamma'],['data','params']]
即遍历d中每个内部列表的每个元素,并返回\\之后的子字符串。
我的解决方案是:
data = []
for n in range(len(d)):
for m in range(len(d[n])):
a = str(d[n][m])
data.append(a.split("\\")[1])
产生:data = ['alpha', 'beta', 'gamma', 'data', 'params']
它以正确的顺序生成正确的字符串,但我失去了列表 d 嵌套方式的性质。无论如何生成列表data 给定d 保持嵌套结构?
编辑:
我实际上只是设法解决了这个问题:
[[d[n][m].split("\\")[1] for m in range(len(d[n]))] for n in range(len(d))]
【问题讨论】:
-
很高兴你自己解决了这个问题......但是,它的可读性不是很强......你几乎不需要在对象长度上使用
range来循环它 -
感谢您的提示。一点一点学习Python。
标签: python string list substring