ZoeLee 发表于 2017-3-2 20:28:20

关于列表的疑问

cars=['audi','benz','bwm','tokoyo']
for car in cars :
    if car in cars:
      print('i predict True.')
      cars.remove(car)
      print(cars)
    else :
      print('i predict Flase.')
为什么输出结果是
i predict True.
['benz', 'bwm', 'tokoyo']
i predict True.
['benz', 'tokoyo']

为什么只有2次循环啊

ZoeLee 发表于 2017-3-2 20:36:48

为什么跳过了'benz'了啊?

ZoeLee 发表于 2017-3-2 20:48:24

在线等,想不通

int2str 发表于 2017-3-3 22:09:34

本帖最后由 int2str 于 2017-3-3 22:11 编辑

稍微修改加句
cars=['audi','benz','bwm','tokoyo']
for car in cars :
    print(car)
    if car in cars:
      print('i predict True.')
      cars.remove(car)
      print(cars)
    else :
      print('i predict Flase.')

结果如图

个人的理解是语句“for car in cars”会让car 从cars,cars,cars,cars遍历
但是cars.remove(car)修改了cars了,所以在第二次循环时,cars是bmw cars是benz
语言表达能力有限,不知道楼主理解我的意思没
页: [1]
查看完整版本: 关于列表的疑问