Python另一个嵌套列表

2024-04-27 18:43:10 发布

您现在位置:Python中文网/ 问答频道 /正文

通过搜索列表中的特定单词,将每个子列表分成另一个子列表。这是我的密码:

for i in list_1:
      for x in i:
          regex = re.compile(r '^pft')
          matched = filter(regex.search ,x)
          print(matched)

list_1 = [['MP1 Z A VDD VNW pft\n', 'MN1 Z A VSS VPW nft\n'],
 ['MM19 Z A VDD VNW pft\n', 'MM18 Z A VDD VNW pft\n', 'MM17 Z A VDD VNW pft\n', 'MM16 Z A VDD VNW pft\n', 'MM15 Z A VDD VNW pft\n', 'MM14 Z A VDD VNW pft\n', 'MM13 Z A VDD VNW pft\n', 'MM12 Z A VDD VNW pft\n', 'MM11 Z A VDD VNW pft\n', 'MM10 Z A VDD VNW pft\n', 'MM9 Z A VSS VPW nft\n', 'MM8 Z A VSS VPW nft\n', 'MM7 Z A VSS VPW nft\n', 'MM6 Z A VSS VPW nft\n', 'MM5 Z A VSS VPW nft\n', 'MM4 Z A VSS VPW nft\n', 'MM3 Z A VSS VPW nft\n', 'MM2 Z A VSS VPW nft\n', 'MM1 Z A VSS VPW nft\n', 'MM0 Z A VSS VPW nft\n']]

如果子列表元素是pft作为一个列表,nft作为一个组,那么我只需要grep列表中的一个元素,并从列表的第一个元素再生成两个列表

示例:

list_2 = ['MP1 Z A VDD VNW pft\n', 'MN1 Z A VSS VPW nft\n']    
pft_list = ['MP1 Z A VDD VNW pft\n']
nft_list = ['MN1 Z A VSS VPW nft\n']

同样地

list_3 = ['MM19 Z A VDD VNW pft\n', 'MM18 Z A VDD VNW pft\n', 'MM17 Z A VDD VNW pft\n', 'MM16 Z A VDD VNW pft\n', 'MM15 Z A VDD VNW pft\n', 'MM14 Z A VDD VNW pft\n', 'MM13 Z A VDD VNW pft\n', 'MM12 Z A VDD VNW pft\n', 'MM11 Z A VDD VNW pft\n', 'MM10 Z A VDD VNW pft\n', 'MM9 Z A VSS VPW nft\n', 'MM8 Z A VSS VPW nft\n', 'MM7 Z A VSS VPW nft\n', 'MM6 Z A VSS VPW nft\n', 'MM5 Z A VSS VPW nft\n', 'MM4 Z A VSS VPW nft\n', 'MM3 Z A VSS VPW nft\n', 'MM2 Z A VSS VPW nft\n', 'MM1 Z A VSS VPW nft\n', 'MM0 Z A VSS VPW nft\n']
pft_list = ['MM19 Z A VDD VNW pft\n', 'MM18 Z A VDD VNW pft\n', 'MM17 Z A VDD VNW pft\n', 'MM16 Z A VDD VNW pft\n', 'MM15 Z A VDD VNW pft\n', 'MM14 Z A VDD VNW pft\n', 'MM13 Z A VDD VNW pft\n', 'MM12 Z A VDD VNW pft\n', 'MM11 Z A VDD VNW pft\n', 'MM10 Z A VDD VNW pft\n']
nft_list = ['MM9 Z A VSS VPW nft\n', 'MM8 Z A VSS VPW nft\n', 'MM7 Z A VSS VPW nft\n', 'MM6 Z A VSS VPW nft\n', 'MM5 Z A VSS VPW nft\n', 'MM4 Z A VSS VPW nft\n', 'MM3 Z A VSS VPW nft\n', 'MM2 Z A VSS VPW nft\n', 'MM1 Z A VSS VPW nft\n', 'MM0 Z A VSS VPW nft\n']

示例:

list_2 = ['MP1 Z A VDD VNW pft\n', 'MN1 Z A VSS VPW nft\n']
pft_list = ['MP1 Z A VDD VNW pft\n']
nft_list = ['MN1 Z A VSS VPW nft\n']

同样地

list_3 = ['MM19 Z A VDD VNW pft\n', 'MM18 Z A VDD VNW pft\n', 'MM17 Z A VDD VNW pft\n', 'MM16 Z A VDD VNW pft\n', 'MM15 Z A VDD VNW pft\n', 'MM14 Z A VDD VNW pft\n', 'MM13 Z A VDD VNW pft\n', 'MM12 Z A VDD VNW pft\n', 'MM11 Z A VDD VNW pft\n', 'MM10 Z A VDD VNW pft\n', 'MM9 Z A VSS VPW nft\n', 'MM8 Z A VSS VPW nft\n', 'MM7 Z A VSS VPW nft\n', 'MM6 Z A VSS VPW nft\n', 'MM5 Z A VSS VPW nft\n', 'MM4 Z A VSS VPW nft\n', 'MM3 Z A VSS VPW nft\n', 'MM2 Z A VSS VPW nft\n', 'MM1 Z A VSS VPW nft\n', 'MM0 Z A VSS VPW nft\n']
pft_list = ['MM19 Z A VDD VNW pft\n', 'MM18 Z A VDD VNW pft\n', 'MM17 Z A VDD VNW pft\n', 'MM16 Z A VDD VNW pft\n', 'MM15 Z A VDD VNW pft\n', 'MM14 Z A VDD VNW pft\n', 'MM13 Z A VDD VNW pft\n', 'MM12 Z A VDD VNW pft\n', 'MM11 Z A VDD VNW pft\n', 'MM10 Z A VDD VNW pft\n']
nft_list = ['MM9 Z A VSS VPW nft\n', 'MM8 Z A VSS VPW nft\n', 'MM7 Z A VSS VPW nft\n', 'MM6 Z A VSS VPW nft\n', 'MM5 Z A VSS VPW nft\n', 'MM4 Z A VSS VPW nft\n', 'MM3 Z A VSS VPW nft\n', 'MM2 Z A VSS VPW nft\n', 'MM1 Z A VSS VPW nft\n', 'MM0 Z A VSS VPW nft\n']

Tags: 列表vsslistvddnftpftmp1mn1
1条回答
网友
1楼 · 发布于 2024-04-27 18:43:10

从您的示例来看,似乎您只想过滤分别以pftnft结尾的元素。你可以用一个简单的列表来理解。你知道吗

pft_list = [x for x in list_3 if x.strip().endswith("pft")]             
nft_list = [x for x in list_3 if x.strip().endswith("nft")]             

如果\n始终是字符串的一部分,则只需if x.endswith("pft\n")。这将产生与预期输出相同的结果。不确定第一部分是否包含嵌套列表,但您可以将其应用于子列表。注意,regex ^pft将检查字符串是否以pft开始。你知道吗

相关问题 更多 >