range在内存中直接生成指定的序列,当序列非常大时会浪费内存资源;

xrange则不会直接生成一个list,而是每次调用返回其中的一个值,而非直接全部生成存于内存中

range([start,] stop[, step])

if练习:

#练习1:逐一显示指定列表中的所有元素:
a = ['first', 'second', 'third', 'forth', 'fifth']
count = 0
while count < len(a):
print(a[count])
count += 1 print('这是逆序显示'.center(30, '#'))
while a:
print(a[-1])
a.pop() 对于任何可迭代对象,使用for是最简单的,效率高于while #练习2:求100内奇数和,偶数和:
a = 0
sum = 0
sum1 = 0
while a <= 100:
if a % 2 != 0:
sum += a
else:
sum1 += a
a += 1 print('偶数和:%d , 奇数和:%d' % (sum,sum1))
#偶数和:2500 , 奇数和:2550 # 练习3:逐一显示指定列表的所有键,并于显示结束后说明总键数
a = []
dic = {'x': 1, 'b': 2, 'c': 3, 'd': 4}
keylist = dic.keys()
for i in keylist:
a.append(i) while a:
print(a[0])
a.pop(0)
else:
print('总键数:%d'.center(50, '-') % (len(dic))) #练习4:创建一个包含了100以内所有奇数的列表,并逆序显示列表中的所有元素:
a = 0
l = []
while a < 100:
if a % 2 != 0:
l.append(a)
a += 1
else:
print('正序:', l)
l.reverse()
m = l
print('逆序:', l)
#逆序用到列表的reverse方法 #练习5:列表l = [0,1,2,3,4,5,6] m = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],
#以第一个列表中的元素为键,以第二个列表中的元素为值生成字典L l = [0, 1, 2, 3, 4, 5, 6]
m = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
L = {}
count = 0
if len(l) == len(m):
while count < len(l):
L[l[count]] = m[count]
count += 1
else:
print(L) #涉及到字典中新增键值的方法==》给键直接赋值即可
##字典的构造:zip,取一个或多个序列为参数,将给定序列中的并排的元素配成元组,返回这些元组的列表(当参数长度不通时,zip以最短序列的长度为准)
#可在for循环中用于实现并行迭代
# L = [0, 1, 2, 3, 4, 5, 6]
# m = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
# n = {}
# for (k,v) in zip(L,m):
# n[k] = v
# print(n)
#输出:{0: 'Sun', 1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat'}
for循环练习
练习1:逐一分开显示指定字典d1中的所有元素,类似如下:
k1 v1
k2 v2
...
d1 = {0: 'Sun', 1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat'}
# d1 = {'0': 'Sun', '1': 'Mon', '2': 'Tue', '3': 'Wed', '4': 'Thu', '5': 'Fri', '6': 'Sat'}
for (k, v) in d1.items():
print(k, v) 练习2:逐一显示列表中l1=["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]中的索引为奇数的元素
l1 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
法1:
for i in l1:
if l1.index(i) % 2 != 0:
print(l1[l1.index(i)])
法2:
for i in range(1,len(l1),2): #非完全遍历用range
print(l1[i]) 练习3:将属于列表l1=["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
但不属于列表l2=["Sun", "Tue", "Wed", "Fri"]的所有元素定义为一个新列表l3
l1 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
l2 = ["Sun", "Tue", "Wed", "Fri"]
l3 = []
for i in l1:
if i not in l2:
l3.append(i)
print(l3) 练习4:已知列表namelist=['stu1', 'stu2', 'stu3', 'stu4', 'stu5', 'stu6', 'stu7'],
删除列表removelist=['stu3', 'stu7', 'stu9']:从namelist中移除removelist,不在removelist中的忽略
namelist = ['stu1', 'stu2', 'stu3', 'stu4', 'stu5', 'stu6', 'stu7']
removelist = ['stu3', 'stu7', 'stu9']
for i in removelist:
if i in namelist:
namelist.remove(i)
print(namelist)

练习题目 :if for while else range、xrange、zip的更多相关文章

  1. Python range() xrange()

    range 前面小节已经说明了,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. xrange用法与 range 完全 ...

  2. python之range(), xrange()

    可以这样理解: range()立即执行,返回结果 xrange()延迟执行,需要时再返回结果.

  3. python循环for,range,xrange;while

    >>>range(1,5)#代表从1到5(不包含5) [1,2,3,4] >>>range(1,5,2)#代表从1到5,间隔2(不包含5) [1,3] >&g ...

  4. python range,xrange区别

    range: 直接生成一个列表对象 xrange: 生成一个xrange对象 xrange使用: 操作一个非常大的数据时,而且没存比较吃紧的时,可以使用xrange来节省内存 xrange一般在循环里 ...

  5. Python 内置函数--range() xrange()

    >>>xrange(8) xrange(8) >>> list(xrange(8)) [0, 1, 2, 3, 4, 5, 6, 7] >>> r ...

  6. ZH奶酪:Python中range和xrange的区别

    range    函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列.range示例: >>> ...

  7. 【Python那些事儿之十】range()和xrange()

    by Harrison Feng in Python 无论是range()还是xrange()都是Python里的内置函数.这个两个内置函数最常用在for循环中.例如: >>> fo ...

  8. FZU 2016 summer train I. Approximating a Constant Range 单调队列

    题目链接: 题目 I. Approximating a Constant Range time limit per test:2 seconds memory limit per test:256 m ...

  9. python range的用法小题

    题目(1)for i in range(10): print(i) 结果:123456789 题目(2) for lst in range(100): if lst % 7 == 0 and str( ...

  10. xrange

    range返回一个列表 xrange反会xrange这个类的实例,每次遍历返回一个值.比range的执行效率要高 在python3中range = xrange range(1,10,2)     - ...

随机推荐

  1. SQL Server中LIKE和PATINDEX的用法

    在SQL Server中,能使用通配符的只有2个:LIKE.PATINDEX. 不过LIKE支持2种通配符转义,无限制最全面:而PATINDEX只支持最简单的通配符转义([]转义),限制较多. LIK ...

  2. flume配置和说明(转)

    Flume是什么 收集.聚合事件流数据的分布式框架 通常用于log数据 采用ad-hoc方案,明显优点如下: 可靠的.可伸缩.可管理.可定制.高性能 声明式配置,可以动态更新配置 提供上下文路由功能 ...

  3. 简洁的BP及RBF神经网络代码

    BP神经网络 function [W,err]=BPTrain(data,label,hiddenlayers,nodes,type) %Train the bp artial nueral net ...

  4. Sphinx初探之安装

    在Centos or redhat 安装Sphinx .首先安装依赖包 $ yum install postgresql-libs unixODBC .安装软件 $ rpm -Uhv sphinx-- ...

  5. 《TomCat与Java Web开发技术详解》(第二版) 第四章节的学习总结--常用Servlet API

    要开发Servlet,自然要掌握常用的servlet的相关API.通过此章节的学习,了解到如下常用API 1.Servlet接口--->GenericServlet抽象类(实现Servlet接口 ...

  6. k8s部署dns

    硬件环境: 两台虚拟机, 10.10.20.203 部署docker.etcd.flannel.kube-apiserver.kube-controller-manager.kube-schedule ...

  7. 嵌入式开发之davinci--- 8127 中osd yuv 数据分析

    YUV数据类型总结: YUV格式有两大类:planar和packed.对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V.对于packed的YUV格 ...

  8. C++中多态性学习(上)

    多态性学习(上) 什么是多态? 多态是指同样的消息被不同类型的对象接收时导致不同的行为.所谓消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数.虽然这看上去好像很高级的样子 ...

  9. 【JavaEE】Springmvc+Spring整合及example

    这一篇在前一篇Springmvc的基础上,加上Spring.Spring的主要用途叫做控制反转(依赖注入,IoC/DI)和面向切面的编程(AOP),本文只介绍IoC,因为AOP主要的应用场景是记录日志 ...

  10. Oracle Data Provider for .NET的使用(托管与非托管(一))

    目录 简单的概述 简单的使用 非托管系统要求 托管驱动系统要求 其它的注意事项 ODP.NET版本说明 安装ODP.NET 安装非托管驱动 非托管驱动绿色配置 简单的概述 ODP.NET的含义是 Or ...