首页 > 解决方案 > 在while循环中使用for循环

问题描述

我正在尝试完成以下任务:

浏览一个列表并选择所有偶数,但当你有15数字时停止。为了实现这一点,我想到了使用以下内容:

nums = np.random.randint(1,100,50) # List of 50 numbers between 1 and 100

x = 0                              # variable to incriment
number = []                        # List to store even number
while x < 16:                       
  for num in nums:                 # Select each number in nums list
    if x%2 ==0:                    # Check if even
      number.append(num)           # Append even number to list
  x+=1                             # increment counter

但我得到一个长度为 400 的列表和x16 的计数器 ( )。

我究竟做错了什么?

标签: python

解决方案


嵌套的 for 循环意味着 while 循环条件在整个列表被循环之前不会被检查。我建议摆脱 while 循环并仅用于break控制停止条件。

number = []
for num in nums:
    if num%2 == 0:
        number.append(num)
    if len(number) == 15:
        break

推荐阅读