社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何定义python列表循环迭代时结束的条件?[暂时搁置]

Timothy Lombard • 5 年前 • 1629 次点击  

我遇到了这个python实践问题:

编写一个函数sublist,它接受一个数字列表作为参数。在函数中,使用while循环返回输入列表的子列表。子列表应该包含与原始列表相同的值,直到它达到数字5为止(它不应该包含数字5)。

这是我的尝试,但你是有效的永远不会被设置为假。

def sublist(lst):
  is_valid = True 
  ret_lst = [] 
  while is_valid:
    for x in lst:
      print(x, is_valid)
      if x == 5:
        is_valid == False
      else:
        ret_lst.append(x)

  return ret_lst

lst = [1,2,3,4,5]
print(sublist(lst))

阅读完评论后,我将函数重写为:

def sublist(lst):
  ret_lst = []
  i = 0; 
  while i < len(lst):
    if lst[i] != 5:
      ret_lst.append(lst[i])
      i += 1
    else:
      break
  return ret_lst

lst = [1,2,3,4,5,7,9]
print(sublist(lst))
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43506
 
1629 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Enthus3d
Reply   •   1 楼
Enthus3d    5 年前

你的程序的第8行,

is_valid == False

应该是

is_valid = False ,

自从 == 是一个比较运算符(比较两个值是否相等),您要查找的是 = 赋值操作(给一个事物赋值)。

Alec Alameddine
Reply   •   2 楼
Alec Alameddine    5 年前

AS @Enthus3d 注意到, is_valid == False 比较 is_valid False . 你要做的是给 有效的 ,这是使用一个等号完成的。

如果您只需要退出一个循环,那么使用 break 关键字比创建布尔值并检查它更容易。

打破 将在程序遇到最里面的循环时结束。