python中的嵌套列表
输入:d=[['Afiles-segments-ASegment-seg'、'Afiles-segments-ASegment-alaw'、'Afiles-segments-trim'、'Afiles-segments-sname'、'Afiles-segments-ASegment-recog'、'Afiles-segments-ASegment-Results'、'Afiles-segments-ASegment-Literal'、'Afiles-amp'、'Afiles-errors“,”Afiles-mishit“,”Afiles-MATCHS“,”Afiles-nomatch“,”Afiles-SILESE“,”Afiles-filename“,”Afiles-matchesAboveThreshold“]] mycode-python中的嵌套列表,python,python-2.7,Python,Python 2.7,输入:d=[['Afiles-segments-ASegment-seg'、'Afiles-segments-ASegment-alaw'、'Afiles-segments-trim'、'Afiles-segments-sname'、'Afiles-segments-ASegment-recog'、'Afiles-segments-ASegment-Results'、'Afiles-segments-ASegment-Literal'、'Afiles-amp'、'Afiles-errors“,”
for i in d:
for j in i:
k=j.replace("Afiles - ","",1)
if((k.find(" - "))>0):
s=k.replace("segments - ASegment - ","")
print s
else:
k=j.replace("Afiles - ","",1)
print k
使用上述代码,我获得了以下字符串,并将这些字符串附加到嵌套列表中:
seg
Conf
alaw
trim
sname
recog
Results
Literal
amp
errors
mishit
matches
nomatch
silence
filename
matchesAboveThreshold
我希望我的输出是:
[['seg','Conf','alaw','trim','sname','recog','Results','Literal','amp','errors','mishit','matches','nomatch','silence','filename','matchesAboveThreshold']]
这将得到您想要的:
result = [[item.split('-')[-1].strip() for item in alist] for alist in d]
这与:
result = []
for alist in d:
sub_list = []
for item in alist:
sub_list.append(item.split('-')[-1].strip())
result.append(sub_list)
我们将sub_列表附加到结果中,因为您期望的输出是列表列表列表
看看python的函数。它将简化您的代码
您也可以将代码修改为:
result = []
for i in d:
sub_list = []
for j in i:
k=j.replace("Afiles - ","",1)
if((k.find(" - "))>0):
ans=k.replace("segments - ASegment - ","")
else:
ans=j.replace("Afiles - ","",1)
sub_list.append(ans)
result.append(sub_list)
要获得相同的输出,您可以尝试使用以下功能:
d = [['Afiles - segments - ASegment - seg', 'Afiles - segments - ASegment - Conf', 'Afiles - segments - ASegment - alaw', 'Afiles - segments - ASegment - trim', 'Afiles - segments - ASegment - sname', 'Afiles - segments - ASegment - recog', 'Afiles - segments - ASegment - Results', 'Afiles - segments - ASegment - Literal', 'Afiles - amp', 'Afiles - errors', 'Afiles - mishit', 'Afiles - matches', 'Afiles - nomatch', 'Afiles - silence', 'Afiles - filename', 'Afiles - matchesAboveThreshold']]
result = []
for l in d:
result.append([]) # include a new list
for s in l:
result[-1].append(s.split(" - ")[-1])
print result
输出:
注:
记住,符号some_list[-1]用于访问序列的最后一个元素。
这假设您有一个列表列表,它还将返回一个列表列表。
这也可以通过列表理解来书写:
结果=[[s.split'-'[-1]表示l中的s]表示l中的d]
[['seg', 'Conf', 'alaw', 'trim', 'sname', 'recog', 'Results', 'Literal', 'amp', 'errors', 'mishit', 'matches', 'nomatch', 'silence', 'filename', 'matchesAboveThreshold']]