for 循环

特指用于遍历容器类型数据,(遍历 循环 迭代 都是一个意思)就是把所有的数据一个一个拿出来的过程, while循环有局限性,不能遍历无序容器数据

setvar = {"a","b","c","d"}
i = 0
length = len(setvar)
while i<=length:
print(setvar[i])
i+=1

set类型不支持

for循环语法

for i in 可迭代性数据:
把可迭代性数据中的值一个一个拿出啦赋值给i,到最后没有值可以拿了,循环终止.

修改上述脚本

setvar = {"a","b","c","d"}
for i in setvar:
print (i)

执行测试

[root@node10 python]# python3 test.py
b
a
c
d

遍历字符串

setvar = "窗前明月光"
for i in setvar:
print (i)

执行

[root@node10 python]# python3 test.py




遍历列表

listvar = [1,2,3,4,5]
for i in listvar:
print (i)

执行

[root@node10 python]# python3 test.py
1
2
3
4
5

遍历元组

tuplevar = (6,7,8,7)
for i in tuplevar:
print(i)

执行

[root@node10 python]# python3 test.py
6
7
8
7

遍历字典

在遍历字典的时,默认遍历的是键,不是值

dictvar = {'a':1,'b':2,'c':3}
for i in dictvar:
print(i)

执行

[root@node10 python]# python3 test.py
a
b
c

range的用法  返回一个可迭代的对象

range(start,end,step)
start 代表开始值
end 代表结束值 但是高位取不到,取到之前的一个值
step 步长

举例

# 只有一个参数的情况:
for i in range(8): # 0 ~7
print(i)
# 有2个参数的情况
for i in range(5,8): # 5 6 7
print(i) # 有3个参数逇情况 (正序)
for i in range(1,11,3):#
print(i)
print("<==>")
# 倒序
for i in range(9,0,-1):
print(i)

执行

[root@node10 python]# python3 test.py
0
1
2
3
4
5
6
7
5
6
7
1
4
7
10
<==>
9
8
7
6
5
4
3
2
1

容器,列表等的取值举例

# 二级容器
lst = [1,2,3,(4,5,6)]
# res = lst[-1]
# res = res[-1]
# print(res,"<22>")
print(lst[-1][-1],"容器")
# 二级列表
listvar = [4,5,6,[77,88]] # 二级元组
tuplevar = (1,2,3,(5,6,7)) # 二级字典
dic = {"a":1,"b":{"c":1,"d":2}}
print(dic["b"]["d"],"字典") # 二级集合 : 集合中的数据必须是可哈希的数据(不可变的数据)
set1 = {1,2,3,4,(1,2,3)} # 四级容器
lst = [1,2,3,4, [5,6,(11,123,{"c":22,"f":33},34),7,8] ]
# 找出33
res = lst[-1][2][-2]["f"]
print(res,"四级容器")

执行

[root@node10 python]# python3 test.py
6 容器
2 字典
33 四级容器

变量的解包操作

a,b = 1,2
c,d = [5,6]
print(a,b,c,d)
执行
[root@node10 python]# python3 test.py
1 2 5 6

遍历等长二级容器

里面的元素是容器数据,容器里面的元素个数相同

listvar =[ ["我","my"], ["你","you"],["他","he"]]
# a,b = ["我","my"] # 变量的解包操作
for a,b in listvar:
print(a,b)

执行

[root@node10 python]# python3 test.py
我 my
你 you
他 he

如果不等长

listvar =[ ["我","my"], ["你","you"],["他"]]
# a,b = ["我","my"] # 变量的解包操作
for a in listvar:
for b in a:
print(b) #一个一个取

执行

[root@node10 python]# python3 test.py

my

you

最新文章

  1. JavaScript语言精粹--Function,类,this,对象
  2. BZOJ2908: 又是nand
  3. 在android 6.0(API 23)中,Google已经移除了移除了Apache HttpClient相关的类
  4. javascript中Date对象的应用——简易日历的实现
  5. SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
  6. php pdo错误:SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
  7. NeHe OpenGL教程 第十二课:显示列表
  8. MYSQL查询某字段中以逗号分隔的字符串的方法
  9. 真正解决ASP.NET每一个页面首次访问超级慢的问题 (转载)
  10. [转]让你提升命令行效率的 Bash 快捷键
  11. C# string LastIndexOf()
  12. git config找到下载的路径URL
  13. HDU--杭电--1501--Zipper--深搜、DP都好
  14. 基于注解的SpringMVC添加其他的Servlet、Filter以及Listener
  15. 关于vue的computed、filters、watch
  16. 环境准备阶段--搭建oracle linux 6.5系统
  17. 【学亮IT手记】mysql创建/查看/切换数据库
  18. Selenium Java Selection的使用
  19. 【转】结构struct 联合Union和枚举Enum的细节讨论
  20. MyBatis通用Mapper技巧

热门文章

  1. java面试-CountDownLatch、CyclicBarrier、Semaphore谈谈你的理解
  2. 软工案例分析之OJ
  3. resultMap结果集映射解决属性名和字段不一致问题
  4. Java 8 Optional
  5. java面试一日一题:讲下redo log
  6. 1148 Werewolf - Simple Version
  7. 908. Smallest Range I
  8. 限制pyqt5应用程序 只允许打开一次
  9. Android apk快速定位、灰色按钮克星--DroidSword
  10. (翻译)OpenDocument and Open XML security (OpenOffice.org and MS Office 2007)