本节重点
- 元组
- 字典
- 集合
- 循环
- 循环遍历容器
- 简单拆容器
一、元组
定义:
- 元组:以小括号形式的数据集合,可存储任意数据类型
- 元组可以用下标获取数据,但是不可以对元组进行数据修改
类型为 class<tuple>
my_tuple=(1,4,"abd",True,1.2)
value = my_tuple[-1]
print(value)
'''
1.2
'''
元组的操作与特点
1、不可以直接删除、修改
# 不可以删除、修改
# del my_tuple[2]
# my_tuple[0] = 3
# 硬修改,存在列表元素时利用内存地址
tuple1 = (1,[3,4])
my_list = tuple1[1]
my_list[0] = 4
print(tuple1)
'''
(1,[4,4])
'''
2、定义空元祖和含有一个元素的元组
#定义一个空元组
my_tuple = ()
print(my_tuple,type(my_tuple))
#定义含有一个元素的元组,加逗号
my_tuple = (1,)
# 不加逗号会变成int类型
my_tuple = (1) # 相当于my_tuple = 1
3、in方法
my_tuple=(10,5,10,2)
result=5 in my_tuple
print(result)
'''
True
'''
4、index方法,参数不在元组中的话,会报错
result = my_tuple.index(10)
print(result)
5、count方法,不在元组中元素返回0
result = my_tuple.count(8)
print(result)
二、字典
定义:
字典:以大括号形式的键值对数据组合,{"name":syp},这算一个元素key一般设为字符串类型。
字典的操作与特性
1、通过key取值
字典是无序的,没有下标概念,不能通过下标取值。通过key取value,key不存在的时候,报错KeyError。
mydict={"name":"syp","age":18}
value=mydict["name"]
2、通过get方式取值
get方式取key值,不存在时返回None,也可以设置默认值,但是不会修改字典本身
mydict={"name":"syp","age":18}
value=mydict["name"]
result=mydict.get("sex","男")#可以添加虚假的字段爬取结果
print(result)
print(mydict)
'''
男
{'name': 'syp', 'age': 18}
'''
3、利用key增加或更新元素
给字典增加键值对,直接用新添加元素的key进行赋值。key如果重复会更新value(修改),key是唯一的
mydict={"name":"syp","age":18}
mydict["wage"]="10000"
mydict["address"]="北京"
print(mydict)
mydict["wage"]="15000"
print(mydict)
'''
{'name': 'syp', 'age': 18, 'wage': '10000', 'address': '北京'}
{'name': 'syp', 'age': 18, 'wage': '15000', 'address': '北京'}
'''
4、删除元素popitem、pop、del
del mydict["wage"]#删除这一个键值对
print(mydict.popitem()) # 删除最后一个元素,并返回该元素
value = mydict.pop("age") # 删除指定元素,参数为key
print(mydict)
del mydict # 删除整个字典
'''
('address', '北京')
{'name': 'syp'}
'''
5、获取字典所有的keys、values
print(mydict.values())
print(mydict.keys())
'''
dict_values(['syp', 18, '10000', '北京'])
dict_keys(['name', 'age', 'wage', 'address'])
'''
6、in方法
# 注意:该方法只能判断key是否在dict中
result = "age" in mydict
三、集合
定义:
以大括号形式集合的数据,数据不可以重复。集合不能根据下标获取数据,可以通过方法添加或删除。
集合的操作与特性
1、定义空集合
my_set = set() #不能直接使用{},变空字典
my_set = {1,1,1,12,"aaa",1.2}
'''
{1, 2, 'aaa', 1.2}
'''
2、remove,discard删除
# remove删除
my_set.remove(1) #删除指定数据,集合中没有目标直接报错
# discard删除
my_set.discard(22222) #删除没有的数据不会崩溃
3、add添加元素
#不可以添加重复数据
my_set.add(5)
my_set.add(5) # 不会报错,但不会多一个5
4、集合不支持下标
print(my_set[2])
# 报错如下
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
20
21 # my_set[0] = 1998 # 集合也是无序的,没有下标概念
---> 22 print(my_set[2])
23 # 集合转换列表与元组,容器相互转换
24 # tuple(),list()
TypeError: 'set' object does not support indexing
5、集合与元组和列表相互转换
# tuple(),list()
set_tuple = tuple(my_set)
set_list = list(my_set)
print(set_tuple)
print(set_list)
'''
(1.2, 2, 5, 'aaa')
[1.2, 2, 5, 'aaa']
'''
四、循环相关
1、while循环
while condition:
process
pass
2、for循环
一般结合range()函数使用。range()函数接受三个参数,range(起始数据,结束数据,步长),左闭右开,步长,默认起始数据为0,步长默认为1,可以指定,结束数据必写。
# 只写一个结束数据,遵守左闭右开,打印0,1,2,3,4
for i in range(5):
print(i)
# 步长为3,跳跃打印:0,3
for i in range(0,6,3):
print(i)
# 倒过来打印:6,5,4,3,2,1
for i in range(6,0,-1):
print(i)
3、break与continue
以下两个关键字必须结合循环使用。
- break: 跳出最内层循环
- continue:结束本次循环,开始下一次循环
循环结束后可以和else语句连用,正常退出循环会继续执行else,如果break出来就不执行else内容,continue会继续执行else。
# break与continue区别
for i in range(5):
if i == 2:
break
print(i)
else:
print("循环完成,break后不执行此句")
'''
0
1
'''
for i in range(5):
if i == 2:
continue
print(i)
else:
print("循环完成,break后不执行此句")
'''
0
1
3
4
循环完成,break后不执行此句
'''
五、循环遍历容器
1、列表
# 直接遍历
mylist = ["皇马","巴萨"]
for value in mylist:
print(value)
# 带标号遍历,value为元组类型
for value in enumerate(mylist):
print(value, type(value))
'''
(0, '苹果') <class 'tuple'>
(1, '草莓') <class 'tuple'>
'''
2、元组
for value in enumerate((1,5,4)):
print(value)
'''
(0,1)
(1,5)
(2,4)
'''
3、字典
mydict = {"name":"syp","age":18}
# 默认遍历的是key
for key in mydict:
print(key)
# 遍历value
for value in mydict.values():
print(value)
# 遍历键值对
for key, value in mydict.items():
print(key,value)
4、集合
my_set = {"皇马","巴萨"}
for value in my_set:
print(value)
六、简单从容器中拆出元素
数据量小的时候,用变量来承接容器每个元素。
mystr = "abs" # 拆字符串
a,b,s = mystr
mylist = [1,2] # 拆列表与元组形式
num1,num2 = mylist
mydict = {"name":"syp","age":18}.values() # 默认key,想拆values加values(),想拆键值对加items(),返回元组
a,b = mydict
'''
syp
18
'''
myset = {3,5} # 拆集合
num1, num2 = myset
网友评论