1.列表list
list是处理⼀组有序项⽬的数据结构,即你可以在⼀个列表中存储⼀个序列的项⽬。列表中的项⽬。列表中的项⽬应该包括在⽅括号中,这样python就知道你是在指明⼀个列表。⼀旦你创建了⼀个列表,你就可以添加,删除,或者是搜索列表中的项⽬。由于你可以增加或删除项⽬,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的。
2.元组tuple()
元祖和列表⼗分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中⽤逗号分隔的项⽬定义。元组通常⽤在使语句或⽤户定义的函数能够安全的采⽤⼀组值的时候,即被使⽤的元组的值不会改变。元组可以嵌套。
3.字典dict()
元素由键(key)和值(value)组成一一对应。字典类似于你通过联系⼈名称查找地址和联系⼈详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在⼀起。注意,键必须是唯⼀的,就像如果有两个⼈恰巧同名的话,你⽆法找到正确的信息。
4.集合set()
特性:与字典类似,但只包含键,⽽没有对应的值,包含的数据不重复。
类型 | 格式描述 | 格式 |
列表 | 可以用list()函数或者方括号[]创建,元素之间以逗号分隔。 | [ , ] list1 = list([1, 2]) #用list()函数创建 list2 = [1, 3, 'hello', 3.5] #用方括号[]创建 |
元组 | 可以用tuple()函数或者圆括号()创建,元素之间用逗号分隔。 | ( , ) tuple1=() |
字典 | 可以用dict()函数或者花括号{}创建,元素之间用逗号分隔,键与值之间用冒号隔开 | { : , : } dict1={'name':'lin','age': 21} |
集合 | 可以用set()函数或者花括号{}创建,元素之间用逗号分隔。 | { } Set1={1,2,3,4,5}#用{}创建 |
列表
现有一软件很火,工作人员需要对后台进行账户密码进行查询。已知的有如下三个账户密码,请写出设计程序,查询是哪三个。
user_list={
"ray":"12345",
"Ada":"dfghjk",
"james":"zxcvb"
}
cmd = input("请输入用户名:")
if cmd in user_list.keys():
password=input("请输入密码")
if user_list[cmd] == password:
print("登入成功")
else:
print("密码输入错误")
else:
print("用户未注册")
元组
#元组(tuple):有序且不可变的容器
#元组不能通过任何方法来进行嵌套,修改
#特殊情况:元组套列表
代码:
tuple1=(1,2,3,4,5,6)
print(tuple1[1])
Ada=("123456","3456",100000,"james","乔治",["alex","qinqin","roy"])
#Ada[3]="jame" #这种情况会报错 'tuple' object does not support item assignment,因为元组不能通过任何方法来进行嵌套,修改
Ada[5].append("lixin") #特殊情况:元组套列表,append()函数 用于在列表末尾添加新的对象,将lixin添加到末尾
print(Ada)
字典
例子:
#字典(dict)键不重复,且元素只能是键(key)值(value)对的可变容器
Ada_information={"name":"ada","nickname":"dada","birth":95,"high":168,"sex":"女"}
#注意:用花括号。“:”前叫key,后加value
print(Ada_information["sex"]) #打印“sex”这个键的值
Ada_information["second_line"]=["alex","ian"] #添加一个Ada_information里没有的键和值
print(Ada_information)#打印Ada_information
print(Ada_information.keys()) #打印Ada_information里的所有键
for i in Ada_information.keys(): #将Ada_information里的所有键(key)进行遍历
print(i)#打印i
print(Ada_information.values()) #打印Ada_information里的所有value
for i,j in Ada_information.items(): #将Ada_information里的键和值都进行遍历
print(i,j)#打印i,j
集合
#set集合
前提:在集合中
- intersection/ & (求交集)
- union/ | (求并集)
- difference/ - (求差集)
- symmetric_difference/ ^(交叉补集)
例子:
family_five={"aa","bb","cc","dd","ee"}
happy_day={"cc","ee","ll","pp","ww"}
#找出family_five和happy_day中相同的值(求交集)
print(family_five.intersection(happy_day))
print(family_five & happy_day)
#找出family_five和happy_day中不相同的值(交叉补集)
print(family_five.symmetric_difference(happy_day))
print(family_five ^ happy_day)
#列出family_five和happy_day中所有的值(求并集)
print(family_five.union(happy_day))
print(family_five | happy_day)
#列出family_five有,happy_day中没有的值 (求差集)
print(family_five.difference(happy_day))
print(family_five - happy_day)
补充:循环嵌套
有一栋楼共5层,每层有5个房间 ,房间号按照101,102,103,......505排序。现如今有一个人要对它进行巡查,2层没人住无需巡查,当他巡查到303号房时,人不舒服,结束巡查。
jam=1#任意定义一个jam值为1
for floor in range(1,6):
if floor ==2:
continue #2层不往下执行了,重新返回前面
print(f"欢迎来到第{floor}层")#打印楼层号
for room in range(1,6):
print(f"{floor}0{room}")#打印房间号
if floor == 3 and room == 3:#如果房间号为303号
print("886结束")#在303房间结束了不走了
jam=11
break#在303那个房间号结束
if jam != 1:#如果jam不为1
break#则结束楼层循环
distance=0
height=100
for i in range(10):
distance +=height
height /= 2
if i == 9:
break
distance += height
print(distance)