自学Python day07-元组和列表

列表

格式:【数据1,2,3,4,5,…】
列表可存多个数据,且数据类型可以不同,通常数据类型应该一致,为了后期方便控制

常用操作

查找

1、通过下标
同C语言中的数组

name_list = ['lili', 'tom', 'rose']

print(name_list)
print(name_list[2])

注意:直接打印列表名的话,是读取整个列表,并不是C语言中的列表名==列表名[0]

2、通过函数
index() count() len()
len():公共方法,无论是字符串、元组、列表都可以用的方法,且效果一样

判断指定数据存在

in not in
in:判断某个指定的数据在某个列表中,在的话返回true,不在返回false
not in 反之

name_list = ['lili', 'tom', 'rose']

print('tom' in name_list)
print('tom' not in name_list)

判断案例

name_list = ['lili', 'tom', 'rose']

# 需求:注册邮箱,用户输入用户名,判断是否重复,如果存在
# 提示用户,否则通过

username = input('请输入您的用户名:')
if username in name_list:
    print(f'该用户名已存在')
else:
    print(f'通过')

增加

append():将指定数据加入列表的末尾
列表序列.append()
extend():同上
insert():指定位置插入
列表是可变序列,如果追加一个序列,追加的是整个序列到列表里面
extend():如果追加的是序列,他会把序列拆开,逐一追加到列表里面
insert():要先指定位置下标

name_list = ['lili', 'tom', 'rose']

name_list.append('xiaoming')
name_list.append([11, 22])
print(name_list)

# 列表的数据是可改的,列表是可变数据
# append函数,追加数据的时候,如果数据是序列,追加整个序列到列表结尾

name_list.extend('xiaoming')
print(name_list)
# 如果追加的数据是一个序列,extend会把列表拆开,逐一追加

name_list.insert(3, 'shibimani')
print(name_list)

删除

del()、pop()、remove()、clear()
del:能删列表,也可以删除指定下标的数据

name_list = ['lili', 'tom', 'rose']

# del
# del(name_list[0])
# print(name_list)
#
# # pop 删除指定下标的数据,如果不指定下标,默认删除最后一个数据
# # 无论是按下标还是最后一个元素,它都会返回这个被删除的数据
# del_name = name_list.pop()
# print(del_name)
#
# del_name = name_list.pop(0)
# print(name_list)

# remove
# name_list.remove('tom')
# print(name_list)
# 默认匹配第一个

# clear
name_list.clear()
print(name_list)

修改

1、修改指定下标的数据
2、逆置reverse()
3、排序 sort()

注意:reverse没有返回值,不能用print直接打印
先reverse之后,原来的序列就逆制了,再打印

name_list = ['lili', 'tom', 'rose']

# 修改就是把指定下标赋值成新的数据
name_list[1] = 'zhangsan'
print(name_list)

# 逆序
list1 = [1, 2, 4, 5, 6]
name_list.reverse()
list1.reverse()
print(list1)
print(name_list)

# sort()    默认是升序  reverse = false
# sort()   如果是reverse=True是降序
list1.sort(reverse=False)       # 这就是默认为升序
print(list1)
list1.sort(reverse=True)
print(list1)

复制

copy()无参数
通常工作中对数据进行操作时,都是先复制一份出来对其操作,保留原数据的准确性

列表的循环遍历

按序依次访问列表中的数据

while

name_list = ['lili', 'tom', 'rose']

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

for

for i in name_list:
    print(i)

列表嵌套

类似于c中的二维数组

# 列表嵌套时的查询数据
# 三个办公室,八个老师,随机分进办公室
"""
1、准备八个老师(列表)、三个办公室(列表)的数据
2、分配进办公室:把老师的名字写入办公室列表
    即办公室列表中追加老师名字
3、验证是否分配成功
    打印办公室的信息:人数和老师名
"""
import random
# 1.准备数据
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
offices = [[], [], []]

# 2.分配老师到办公室--遍历老师列表数据
for name in teachers:
    # 列表追加数据 -- append(整体追加),extend, insert
    num = random.randint(0, 2)
    offices[num].append(name)

# 3.验证是否成功
# 为了贴合生活,把各个办公室字列表加办公室编号123
i = 1
for office in offices:
    print(f'办公室{i}的人数是{len(office)},老师分别是:')
    for name in office:
        print(name)
    i += 1

元组

应用场景

列表中的数据是可以修改的,而元组是不能修改的
列表list:【】 元组tuple:( )

定义元组

单数据元组一定要加逗号,不然就成了这个数据自己的类型

a = (10, 20, 30)        # 多数据元组
print(type(a))

a1 = (10,)              # 单数据元组
print(type(a1))

a2 = (10)               # int
print(type(a2))
------------------------------------------------
<class 'tuple'>
<class 'tuple'>
<class 'int'>

常见操作

就是查找的相关操作:
1、按下标
2、查找某个数据index()
3、count统计出现次数
4、len()

元组数据的修改

如果元组中有列表,列表里的数据是可以被修改的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值