Python 函数只迭代第一项

我编写了一个函数来将一组数字转换为字符串,但它只执行第一项。 我想遍历整个列表。

列表 = [ 0,50,80,12,5,8,19,90,40,7,9,18,27,30,45]

def number_group(x):

  item = [ ]
  for i in x:
    if i in range(0,30):
      print (' group 10 and 30')  
    elif i in range(30,60):
      print ('group 30 and 60')
    elif i in range (60,90):
      print ('group 60 and 90')
    elif i in range (90,120):
      print ('group 90 and 120')
    else:
      return ('NAN')
    item.append((i))
  return 

知道怎么做吗?

wxdsiclbpo 回答:Python 函数只迭代第一项

您的代码非常适合我。如果您得到超过 119 的数字,循环将立即停止。您知道吗?

顺便说一句,“在范围内”是一种糟糕的处理方式。相反:

def number_group(x):

  item = [ ]
  for i in x:
    if 0 <= i < 30:
      print (' group 10 and 30')  
    elif i < 60:
      print ('group 30 and 60')
    elif i < 90:
      print ('group 60 and 90')
    elif i < 120:
      print ('group 90 and 120')
    else:
      return ('NAN')
    item.append(i)
  return 
,

你想这样做吗:

def number_group(x):
    item = [ ]
    for i in x:
      if 0 <= i < 30:
        print ('group 10 and 30')  
      elif i < 60:
        print ('group 30 and 60')
      elif i < 90:
        print ('group 60 and 90')
      elif i < 120:
        print ('group 90 and 120')
      else:
        print ('Not in any group')
      item.append(str(i))
    return item
  
print(number_group([ 0,50,80,12,5,8,19,90,40,7,9,18,27,30,45]))
"""
group 10 and 30
group 30 and 60
group 60 and 90
group 10 and 30
group 10 and 30
group 10 and 30
group 10 and 30
group 90 and 120
group 30 and 60
group 10 and 30
group 10 and 30
group 10 and 30
group 10 and 30
group 10 and 30
group 30 and 60
group 30 and 60
['0','50','80','12','5','8','19','90','40','7','9','18','27','30','45']
"""

打印给定号码所在的组,并返回这些号码的字符串列表。

本文链接:https://www.f2er.com/6718.html

大家都在问