Python基础(二)


在这里插入图片描述
在这里插入图片描述

列表

列表可以一次性存储多个数据,并且可以是不同的数据类型。元素之间没有任何关联

[数据1,数据2,数据3,数据4......]

name_list = ['Tom', 'Lily', 'Rose']
print(name_list[0])# Tom
print(name_list[1])# Lily
print(name_list[2])# Rose
print(name_list[-1])# Rose
#Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素

在这里插入图片描述

查找函数:
index():返回指定数据所在位置的下标。

name_list = ['Tom', 'Lily', 'Rose']
print(name_list.index('Lily', 0, 2))# 1
# 如果查找的数据不存在就报错

count():统计指定数据在当前列表中出现的次数。

name_list = ['Tom', 'Lily', 'Rose']
print(name_list.count('Lily'))# 1

len():访问列表⻓度,即列表中数据的个数。

name_list = ['Tom', 'Lily', 'Rose']
print(len(name_list))# 3

in:判断指定数据在某个列表序列,如果在返回True,否则返回False

name_list = ['Tom', 'Lily', 'Rose']

#结果:True
print('Lily'in name_list)
#结果:False
print('Lilys'in name_list)

not in:判断指定数据不在某个列表序列,
如果不在返回True,否则返回False

name_list = ['Tom', 'Lily', 'Rose']

#结果:False
print('Lily' not in name_list)
#结果:True
print('Lilys'not in name_list)

在这里插入图片描述在这里插入图片描述在这里插入图片描述

增加:
(1)append():列表末尾增加数据。列表追加数据的时候,直接在原列表⾥⾯追加了指定数据,即修改了原列表,故列表为可变类型数据。

列表序列.append(数据)

name_list = ['Tom', 'Lily', 'Rose']
name_list.append('xiaoming')
#结果:['Tom','Lily','Rose', 'xiaoming']
print(name_list)
name_list.append(11,22)
print['Tom', 'Lily', 'Rose',[11,22]]

note:如果append()追加的数据是⼀个序列,则追加整个序列到列表.
可以先创建一个空列表,再使用一系列的append()语句添加元素。下面来创建一个空表,再在其中添加元素

(2)extend():列表结尾追加数据,如果数据是⼀个序列,则将这个序列的数据逐⼀添加到列表。

列表序列.extend(数据)S

在这里插入图片描述

(3)insert():指定位置新增数据

列表序列.insert(位置下标,数据)

name_list = ['Tom', 'Lily', 'Rose']
name_list.insert(1, 'xiaoming')
#结果:['Tom','xiaoming', 'Lily', 'Rose']
print(name_list)

删除:
(1)使用del语句删除列表中元素
在这里插入图片描述
(2)pop():删除指定下标的数据(如果不指定默认的下标,默认为最后⼀个),并返回该数据。
在这里插入图片描述当使用pop()时,被弹出的元素就不再在列表中。

name_list = ['Tom', 'Lily', 'Rose']
del_name = name_list.pop(1)
#结果:Lily
print(del_name)
#结果:['Tom','Rose']
print(name_list)

(3)根据值去删除元素:remove
在这里插入图片描述(4)清空列表:clear()
在这里插入图片描述
修改:修改指定下标数据
在这里插入图片描述排序:
(1)逆置:reverse()
在这里插入图片描述俩次调用reverse()可以回到原来的效果

(2)排序:sort()永久排序
在这里插入图片描述(3)sorted():临时排序:按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
在这里插入图片描述注意,调用函数sorted()后,列表元素的排列顺序并没有变(见)。如果你要按与字母顺
序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。

复制:
(1)同时省略起始索引和终止索引([:])。
这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表
(2)=
在这里插入图片描述

列表的循环遍历:

name_list=['Tom','Lily','Rose']

i=0
while i<len(name_list);
  print(name_list[i])
  i+=1

for i in name_list:
  print(i)

列表嵌套:
所谓列表嵌套指的就是⼀个列表⾥⾯包含了其他的⼦列表。

应⽤场景:要存储班级⼀、⼆、三三个班级学⽣姓名,且每个班级的学⽣姓名在⼀个列表。

name_list = [['⼩明','⼩红','⼩绿'],['Tom','Lily', 'Rose'],['张三','李四','王']]

需求:随机分配办公室

有三个办公室,8位⽼师,8位⽼师随机分配到3个办公室

#准备数据(8老师+3办公室)
import random
teachers=['A','B','C','D','E','F','G','H']
offices=[[],[],[]]

#分配座位到办公室,取到每个老师到办公室列表中
for name in teachers:
    num=random.randint(0,2);
    offices[num].append(name)

#检查是否分配成功
for office in offices:
    print(f'办公室人数{len(office)},老师名字')
    for name in office:
        print(name)

元组

列表可以⼀次性存储多个数据,但是列表中的数据允许更改。⼀个元组可以存储多个数据,元组内的数据是不能修改的。

元组特点:定义元组使⽤⼩括号,且逗号隔开各个数据,数据可以是不同的数据类型。如果定义的元组只有⼀个数据,那么这个数据后⾯也好添加逗号,否则数据类型为唯⼀的这个数据的数据类型。

在这里插入图片描述元组数据不⽀持修改,只⽀持查找,但是元组可以用来赋值。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

集合

创建集合使⽤{123}或set(),但是如果要创建空集合只能使⽤set(),因为{}⽤来创建空字典。

s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
s4 = set()
print(type(s4))# set
s5 = {}
print(type(s5))# dict

1.集合可以去掉重复数据;
2.集合数据是⽆序的,故不⽀持下标;
在这里插入图片描述
删除数据:
在这里插入图片描述

discard():删除集合中指定数据,如果数据不存在也不会报错
在这里插入图片描述
pop():随机删除集合中某个数据,并且返回这个数据
在这里插入图片描述
查找数据:
在这里插入图片描述

字典

在这里插入图片描述数据顺序发⽣变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使⽤同⼀的标准查找数据呢?

答:字典,字典⾥⾯的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不⽀持下标,后期⽆论数据如何变化,只需要按照对应的键的名字查找数据即可。

(1)创建字典的语法:
符号为大括号+数据为键值对形式出现+每个键值对用逗号隔开

#有数据字典
dict1 = {'name':'Tom', 'age':20, 'gender':"男"}

#空字典
dict2 = {}
dict3 = dict()

#⼀般称冒号前⾯的为键(key),简称k;冒号后⾯的为值(value),简称v

增:字典序列[key] =值
如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
在这里插入图片描述
删:
在这里插入图片描述
查:
(1)key值查找
在这里插入图片描述
(2)get()

字典序列.get(key,默认值)
如果当前查找的key不存在
则返回第⼆个参数(默认值),
如果省略第⼆个参数,则返回None

在这里插入图片描述(3)keys
在这里插入图片描述
(4)values:
在这里插入图片描述(5)items:
在这里插入图片描述
字典的循环遍历:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

for key in dict.keys():
for value in dict.values():
for item in dict.items():# 遍历元素
for key,value in dict.items(): #遍历键值对

需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
使用while循环来处理列表和字典:
(1)在列表中移动元素(提取用户信息)

# 首先,创建一个待验证用户列表
# 和一个用于存储已验证用户的空列表
unconfirmed_users = ['alice', 'brian', 'candace'] 
confirmed_users = [] 
# 验证每个用户,直到没有未验证用户为止
# 将每个经过验证的列表都移到已验证用户列表中
 while unconfirmed_users:
    current_user = unconfirmed_users.pop() 
   print("Verifying user: " + current_user.title()) 
confirmed_users.append(current_user) 
 
# 显示所有已验证的用户
print("\nThe following users have been confirmed:") 
for confirmed_user in confirmed_users: 
 print(confirmed_user.title())

删除包含特定值的所有列表元素:

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] 
print(pets) 
while 'cat' in pets: 
 pets.remove('cat') 
 
print(pets)

使用用户输入来填充字典:

responses = {} 
# 设置一个标志,指出调查是否继续
polling_active = True 
while polling_active: 
 # 提示输入被调查者的名字和回答
 name = input("\nWhat is your name? ") 
 response = input("Which mountain would you like to climb someday? ") 
 
 # 将答卷存储在字典中
 responses[name] = response 
 
 # 看看是否还有人要参与调查
 repeat = input("Would you like to let another person respond? (yes/ no) ") 
 if repeat == 'no': 
 polling_active = False 
 
# 调查结束,显示结果
print("\n--- Poll Results ---") 
 for name, response in responses.items(): 
 print(name + " would like to climb " + response + ".")
#这个程序首先定义了一个空字典(responses),并设置了一个标志(polling_active),用于指出调查是否继续。只要polling_active为True,Python就运行while循环中的代码。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太一TT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值