python-3 列表、元组和集合

本文详细介绍了Python中的三种重要数据结构——列表、元组和集合。内容包括它们的定义、特性、操作方法以及各种应用场景,如列表的增删改查、元组的使用场景和集合的交并补集操作。同时提供了多个练习题以加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、列表

数组: 存储同一数据类型的组合;

 列表: 可以存储不同数据类型

1.定义列表

# 定义一个空列表


# 定义一个包含元素的列表


# 列表里面存储列表


2.列表特性

# 索引


#切片


#重复


#连接


#for 循环

#成员操作符


#嵌套列表的索引


# 强制转换range(5)的返回值为列表


练习:

假定有下面这样的列表:
    names = ['fentiao', 'fendai', 'fensi', 'apple']

    输出结果为:'I have fentiao, fendai, fensi and apple.'


3.列表的增加

 # append: 追加, 追加元素到列表的最后;


# extend: 追加多个元素到列表中;


# insert: 添加元素到指定索引的前面;


4.列表的删除

# remove: 删除指定的值,列表中有重复字符,只删除先遇到的




# pop删除指定索引的值并返回, 默认情况删除最后一个元素;



# del删除列表元素, 可以通过索引和切片的方式来删除;




# clear: 清空列表


# 删除列表中重复的所有字符


#删除列表中重复字符(保留一个)


5.修改列表元素

# 通过索引修改列表元素;


# 通过切片修改列表元素;


6.查看元素出现的次数


7.查看元素的索引值(索引值1-4之间的shell的索引值)


8.复制

# 该方式不能实现复制, 因为两个变量指向同一块内存空间;


# 第一种实现列表的复制;


# 第2种实现列表的复制;


9. 字母按照ASCII码从小到大排序;


# 字母按照ASCII码从大到小排序;


10. 对于数字排序的案例


11.直接反转, 类似languages[::-1]


列表练习:

用户登陆系统Version2:
        1). 已知多个用户名和密码分别保存在列表中;
        2). 判断用户名是否存在,
                如果登陆的用户不存在,则报错;;
                如果用户存在, 则判断密码是否正确:
                如果正确, 输出用户登陆成功;
                如果不正确, 输出登陆失败;
        3). 为防止黑客暴力破解密码, 登陆最多有3次机会;


计算字符个数

练习:计算字符个数

题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。
输出描述:输出输入字符串中含有该字符的个数。

示例1:
    输入:ABCDEF A
    输出:1



12.is和==的区别

# id: 在内存中存储的位置
# type: 变量的;类型
# value: 值是否相等;
# == 判断: type, value
# is   判断: type, value, id
# 结论:
#   is表示的是对象标识符;表示两个变量的值是否在同一块内存空间;
#   ==表示的是值是否相等;
# 总结: is返回值为True, ==返回一定是True;

13.深拷贝与浅拷贝

拷贝:
# # 不是拷贝, 是将li1的指向li的内存位置;


浅拷贝


深拷贝


14.可变数据类型和不可变数据类型

# 数值类型, 字符串, bool都是不可变数据类型;

int, float, complex
str
list
bool

# list是可变数据类型;<有增删改查>列表


二、元组

1.元组数据类型


强制转化为元组


2.元组数据特性

# 索引(index)


#切片


# 重复

# 连接


# 成员操作符


# for 循环


# 枚举



2. 元组应用

# 元组应用的第一个场景:


# 元组应用的第二个场景:


3.元组的赋值


4.列表的排序

scores.sort()

# python2中*middle是不能使用的;

最终成绩: 去掉最高分和最低分,求平均


5.通过列表去构建队列的数据结构






6.通过列表去构建栈的数据结构







三、集合

1.集合


2.列表转换为集合


3.列表的去重


4.集合的特性

# 集合的特性: (索引, 切片, 重复, 连接,)===> 不支持, 因为无序; 

                              成员操作符, for循环 ===> 支持;

# 集合是无序的数据类型: 添加元素的顺序和存储的顺序无关;





5.集合的增删改查

# 增加单个元素;


# 增加多个元素;


# 删除指定元素


# 随机删除集合元素


# 清空集合


6.集合操作_交集补集

# 交集


# 并集


# 补集


# 对等差分(并集 - 交集)


# s3是s4的子集?


#  s3是s4的父集?


#  s1和s2没有交集么? 如果没有交集True,否则返回False;

练习:

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值