2013-07-25 5 views
3

Я новичок в Python и пытаюсь научиться использовать оператор for для отображения информации определенным образом .... Есть ли способ использовать оператор for для отображения списка, подобного этому?Python: для оператора выводить список со строками?

w = "Fa1/1       connected 42   a-full a-100 10/100BaseTX" 
v = w.split() 

x=v[0] 
print "Port ", x 

y=v[1] 
print "Status ", y 

z=v[2] 
print "VLAN ", z 

a=v[3] 
print "Duplex ", a 

b=v[4] 
print "Speed ", b 

c=v[5] 
print "Type ", c 

------------------------- 
Port Fa1/1 
Status connected 
VLAN 42 
Duplex a-full 
Speed a-100 
Type 10/100BaseTX 

Я пробовал много различных методов, но получаю значение и индекс ошибки ....

Спасибо за любую помощь ....

ответ

5

Что-то вроде этого?

>>> w = "Fa1/1       connected 42   a-full a-100 10/100BaseTX" 
>>> firstList = ['Port', 'Status', 'VLAN', 'Duplex', 'Speed', 'Type'] 
>>> testList = zip(firstList, w.split()) 
>>> for a, b in testList: 
     print a, b 


Port Fa1/1 
Status connected 
VLAN 42 
Duplex a-full 
Speed a-100 
Type 10/100BaseTX 
+0

Бог это так просто, что я вижу это .... Я чувствую себя идиотом ... Спасибо –

2

Вы имеете в виду, как это?

w = 'Fa1/1     connected 42   a-full a-100 10/100BaseTX' 
f = 'Port {0}\nStatus {1}\nVLAN {2}\nDuplex {3}\nSpeed {4}\nType {5}\n' 
s = f.format(*w.split()) 

print s 

Port Fa1/1 
Status connected 
VLAN 42 
Duplex a-full 
Speed a-100 
Type 10/100BaseTX 

В этом случае с помощью format string проще, чем явно итерация результаты, возвращаемые split().

+0

Спасибо, это тоже работает –

+1

@JustinParker И это короче и гибче;) –