2015-09-10 4 views
0

Это мой код:Как напечатать строку последовательности в формате списка?

Height =[9.6, 7.5, 2.2, 1.5, 4.0, 3.0, 4.5, 2.3, 7.5, 6.5, 2.7] 
for YY in Height: 
    def tall_or_short (YY): 
     if YY>5: 
      print "tall" 
     elif YY>=2: 
      print "meduim" 
     else: 
      print "short" 
    str(tall_or_short (YY)) 
HEIGHT = [str(tall_or_short (YY)) for YY in Height] 

print str(HEIGHT) 

Результат:

['None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None'] 

Как исправить эту проблему и показать ['tall', 'short', ....., 'medium']?

+0

Может вы более подробно описываете свой вопрос? – guaka

ответ

1

Извлеките свое определение функции из своего цикла. Вызовите свою функцию из своей петли.

def tall_or_short (YY): 
    if YY > 5: 
     return "tall" 
    elif YY >= 2: 
     return "medium" 
    else: 
     return "short" 

height = [9.6, 7.5, 2.2, 1.5, 4.0, 3.0, 4.5, 2.3, 7.5, 6.5, 2.7] 
transformed = [] 
for YY in height: 
    transformed.append(tall_or_short(YY)) 
print transformed 

Результаты:

(tallshort)macbook:stackoverflow joeyoung$ python tallshort.py 
['tall', 'tall', 'medium', 'short', 'medium', 'medium', 'medium', 'medium', 'tall', 'tall', 'medium'] 
+0

спасибо! оно работает!! –

0

Я думаю, что это то, что вы просите (используя python3.4):

heights =[9.6, 7.5, 2.2, 1.5, 4.0, 3.0, 4.5, 2.3, 7.5, 6.5, 2.7] 

heights_str =[] 

for height in heights: 
    if height > 5: 
     heights_str.append("tall") 
    elif height >= 2: 
     heights_str.append("medium") 
    else: 
     heights_str.append("short") 

print(heights_str) 

Выход:

['tall', 'tall', 'medium', 'short', 'medium', 'medium', 'medium', 'medium', 'tall', 'tall', 'medium'] 
+1

Спасибо! это сработало!! теперь я знаю, как изменить список номеров на список строк :) –