码迷,mamicode.com
首页 > 编程语言 > 详细

python 第三章 元祖,字典,集合,while循环

时间:2018-09-02 23:49:36      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:之间   打印   update   false   并集   usr   交集   自己   inpu   

元祖

Python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 
4 tup = (1,2,3,4,"hello","word")
5 print(type(tup))

创建空元组

1 tup = ()

元组中只包含一个元素时,需要在元素后面添加逗号

1 tup = (1,)

元祖也可以通过索引取值

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 tup = (1,2,3,4,"hello","word")
 5 tup1 = (2,4,6,8,10)
 6 print(tup[4])
 7 print(tup1[3])
 8 #输出
 9 hello
10 8

修改元祖

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,或者重新给元祖赋值

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 tup = (1,2,3,4,"hello","word")
 5 tup1 = (2,4,6,8,10)
 6 tup2 =tup+tup1
 7 print(tup2)
 8 tup2 = (100,200)
 9 print(tup2)
10 #输出
11 (1, 2, 3, 4, hello, word, 2, 4, 6, 8, 10)
12 (100, 200)

删除元祖

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。注意删除后的元祖在调用会报错

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 tup = (1,2,3,4,"hello","word")
 5 tup1 = (2,4,6,8,10)
 6 del tup  #删除元祖
 7 tup2 =tup+tup1
 8 print(tup2)
 9 #输出
10 NameError: name tup is not defined
11 #因为删除了tup,所以报错,显示出tup没有定义

字典

 

字典是另一种可变容器模型,且可存储任意类型对象。

 

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 
4 dic = {"name":"xyx","age":21,"age":27}
5 print(dic)
6 #输出
7 {name: xyx, age: 27}

访问字典中的值

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 
4 dic = {"name":"xyx","age":21}
5 print(dic["name"])
6 print(dic["age"])
7 #输出
8 xyx
9 21

添加键-值对,使用字典来存储用户提供的数据或编写能自动生成大量键-值对的代码时,通常都需要先定义一个空字典.

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 
4 dic={}
5 dic["a"]=10
6 dic["b"]=20
7 print(dic)
8 #输出
9 {"a":10,"b":20}

get(),update() 方法

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 #根据key获取值,key不存在,返回None,或者自己指定的value
 5 dic ={"name":"xyx","age":21}
 6 dic.get(key)
 7 None
 8 dic.get(key,-1)
 9 -1
10 
11 #进行更新,如果已经有了key则替换value的值 ,如果没有那就创建
12 dic ={"name":"xyx","age":21}
13 dic1 = {Sex: female }
14 dic.update(dic1)
15 print(dic)
16 #输出
17 {name: xyx, age: 21, Sex: female}

修改字典中的值

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 
4 dic ={"name":"xyx","age":21}
5 dic["name"]=20
6 dic["age"]=30
7 print(dic)
8 #输出
9 {name: 20, age: 30}

删除键-值对

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 
4 dic ={"name":"xyx","age":21}
5 del dic["name"]
6 #同时对应的值一同删除,注意删除的键-值对永久消失了
7 print(dic)
8 #输出
9 {"age":21}

遍历字典,同时遍历key,value ,只遍历key,只遍历value

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 dic ={"name":"xyx","age":21}
 5 for i,v in dic.items():
 6     print(i,v)
 7 #dic.items() 返回一个键-值对列表
 8 #输出
 9 name xyx
10 age 21
11 
12 dic ={"name":"xyx","age":21}
13 for i in dic.keys():
14     print(i)
15 #dic.keys() 返回一个键列表
16 #输出
17 name
18 age
19 
20 dic ={"name":"xyx","age":21}
21 for i in dic.values():
22     print(i)
23 #dic.values() 返回一个值列表
24 #输出
25 xyx
26 21

sorted()函数,set()函数

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 dic ={"name":"xyx","age":21}
 5 for i,v in sorted(dic.items()):
 6     print(i,v)
 7 #sorted()函数 按顺序遍历出字典列表
 8 #输出
 9 age 21
10 name xyx
11 
12 dic ={"name":"xyx","age":21,"ages":21}
13 for i in set(dic.values()):
14         print(i)
15 #set()函数 实现对字典值的去重
16 #输出
17 xyx
18 21

嵌套字典列表

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 dic = {"name": "x"}
 5 dic1 = {"name1": "y"}
 6 dic2 = {"name2": "x"}
 7 list = [dic, dic1, dic2]
 8 for i in list:
 9     print(i)
10 #如果要改变字典的值需要使用for循环遍历这个列表然后更改
11 for i in list:
12     i["name"] = 50
13     i["name1"] = 60
14     i["name2"] = 70
15     print(i)
16 #输出
17 {name: x}
18 {name1: y}
19 {name2: x}
20 {name: 50, name1: 60, name2: 70}
21 {name1: 60, name: 50, name2: 70}
22 {name2: 70, name: 50, name1: 60}

集合

set和dict类似,也是一组key的集合,但不存储value,由于key不能重复,所以,在set中,没有重复的key,不可变类型
要创建一个set,需要提供一个list作为输入集合

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 s = set([1,2,3])
 5 print(s)
 6 #输出
 7 {1, 2, 3}
 8 
 9 """注意,传入的参数[1,2,3]是一个list 而显示的{1,2,3,}只是告诉你这个set内部有1,2,3这三个元素,显示的顺序也不表示set是有序的,重复的元素在set中自动被过滤"""
10 
11 s = set([1,1,2,2,3,3])
12 print(s)
13 #输出
14 {1,2,3}

&交集  |并集 -差集 ^交叉补集

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 s1 = set([1,2,3])
 5 s2 = set([2,3,4])
 6 a = s1 & s2
 7 print(a)
 8 #输出
 9 {2, 3}
10 
11 b = s1 | s2
12 print(b)
13 #输出
14 {1, 2, 3, 4}
15 
16 c = s1 - s2
17 print(c)
18 #输出
19 {1}
20 
21 d = s2 - s1
22 print(d)
23 #输出
24 {4}
25 
26 e = s1 ^ s2
27 print(e)
28 #输出
29 {1, 4}

添加通过add(key)方法可以添加元素到set中,可以重复添加但是没有效果。

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 s = set([1,2,3])
 5 s.add(4)
 6 print(s)
 7 s.add(4) #重复添加但是没效果
 8 print(s)
 9 #输出
10 {1, 2, 3, 4}
11 {1, 2, 3, 4}

其他查询交集,子集,副集方法,以及更新集合多个值

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #isdisjoint() 查询有没有交集 没有显示True 有就是False
 4 s1 = set([1,2,3,4,5])
 5 s2 = set([6,7,8,9,10])
 6 print(s1.isdisjoint(s2))
 7 #输出
 8 True
 9 
10 #issubset() 查询s1是不是s2的子集
11 print(s1.issubset(s2))
12 #输出
13 False
14 
15 #issuperset 查询副集
16 print(s1.issuperset(s2))
17 #输出
18 False
19 
20 #update 更新多个值
21 s1.update(s2)
22 print(s1)
23 #输出
24 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

 while 循环

在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志,充当了程序的交通信号灯,你可让程序在标志位True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。这样,在while语句中就只需检查一个条件--标志的当前值是否为True,并将所有测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序变的更为整洁

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 
 5 while True:
 6     print("请输入你喜欢的数字")
 7     print("输入q退出")
 8     a = input("请输入: ")
 9     if a == "q":
10         break
11     else:
12         print(a)
13 #break 退出循环
14 """在任何python循环中都可以使用break语句,比如可使用break退出遍历列表或字典的for循环"""

在循环中使用continue
要返回到循环的开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它不像break语句那样不在执行余下的代码并退出整个循环

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 """从1到10,但只打印偶数的循环"""
 5 a = 0
 6 while a < 10:
 7     a += 1
 8     if a % 2 == 0:
 9         print(a)
10     else:
11         continue
12 
13 #输出
14 2
15 4
16 6
17 8
18 10

 

python 第三章 元祖,字典,集合,while循环

标签:之间   打印   update   false   并集   usr   交集   自己   inpu   

原文地址:https://www.cnblogs.com/xyx2018/p/9575199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!