python中的嵌套列表

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“,”

输入: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-

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']]