2016-08-21 164 views
2

我有一个drawingnumbers的列表,我试图拆分这些字符串,然后附加到一些列表。遍历列表 - 拆分字符串

我希望结束了一些列表,其中包含每个相关的原始字符串片。

当时我的定义是遍历列表,但覆盖变量,而不是追加它们。因此,我为每个变量都有一个条目,这些条目对应于列表的最终条目。

任何人都可以请帮忙吗?

# drawingnumber split 

drawingnumber = ["AAA601-XXX-A-L00-1028-DR-GA-200-001", 
"AAA601-XXX-A-L10-1028-DR-GA-200-001", 
"AAA601-XXX-A-L00-1029-DR-GA-200-001", 
"AAA601-XXX-A-L00-1029-DR-GA-200-XXX"] 

building = [] 
buildinglist = [] 
originator = [] 
discipline = [] 
level = [] 
scope = [] 
drawingtype = [] 
drawingsubtype = [] 
numbera = [] 
numberb = [] 

for i in drawingnumber: 
    building, originator, discipline, level, scope, \ 
    drawingtype,drawingsubtype, numbera, numberb = i.split("-") 

print("building:", building) 
print("originator: ", originator) 
print("discipline: ", discipline) 
print("level: ", level) 
print("scope: ", scope) 
print("drawingtype: ", drawingtype) 
print("drawingsubtype", drawingsubtype) 
print("drawingident", numbera, "-", numberb) 

回答

2

您可以使用zip列表中分裂的每个元素后转你的清单为:

zip(*[i.split("-") for i in drawingnumber]) 

,并将它们分配到列表中的名称:

building, originator, discipline, level, scope, \ 
drawingtype, drawingsubtype, numbera, numberb = zip(*[i.split("-") for i in drawingnumber]) 

输出示例:

building 
# ('AAA601', 'AAA601', 'AAA601', 'AAA601') 

originator 
# ('XXX', 'XXX', 'XXX', 'XXX') 

numberb 
# ('001', '001', '001', 'XXX') 
+2

打我吧,upvoted – Mureinik

+0

完美 - 谢谢大家。 – Jup

+0

@Jup:如果答案有帮助,考虑upvoting /接受它(左边的绿色勾号)。 – Jan

0

只要改变

for i in drawingnumber: 
    building, originator, discipline, level, scope, drawingtype,drawingsubtype, numbera, numberb = i.split("-") 

到:

for i in drawingnumber: 
    building_, originator_, discipline_, level_, scope_, drawingtype_,drawingsubtype_, numbera_, numberb_ = i.split("-") 
    building.append(building_) 
    originator.append(originator_) 
    ...etc... 

分裂valeus重新定义你的变量,你要在这里做什么,每次基本上是附上那些你创建的列表,还搭载复数名像列表:建筑并附加单数变量给他们

0
drawingnumber = ["AAA601-XX1-A-L00-1028-DR-GA-200-001", 
"AAA602-XX2-A-L10-1028-DR-GA-200-001", 
"AAA603-XX3-A-L00-1029-DR-GA-200-001", 
"AAA604-XX4-A-L00-1029-DR-GA-200-XXX"] 

building = [] 
buildinglist = [] 
originator = [] 
discipline = [] 
level = [] 
scope = [] 
drawingtype = [] 
drawingsubtype = [] 
numbera = [] 
numberb = [] 

for i in drawingnumber: 
    j = i.split('-') 
    building.append(j[0]) 
    buildinglist.append(j[1]) 


for i in range(len(drawingnumber)): 
    print("building:", building[i]) 
    print("buildinglist:", buildinglist[i])