首页 > 其他分享 >day06-列表

day06-列表

时间:2023-10-31 18:47:52浏览次数:39  
标签:company 元素 list day06 列表 print my

列表 (List) 是一种有序、可变且允许重复元素的数据结构 列表中的每个元素均会分配一个数字,用以记录位置,我们称之为 索引 (Indexes),索引值从 0 开始,依次往后计数。 列表使用中括号[ ] ,元素之间使用逗号 分隔,其元素可以是数字、字符串、列表等其他任何数据类型。

1、创建列表

使用括号[ ]创建
list = [1, 2, 3, 4, 5]  # 创建包含整数元素的列表
list = ["1", "2", "3", "4", "5"]  # 创建包含字符串元素的列表
list = [{}, {}]  # 创建包含字典元素的列表
list = [(1, 2, 3), (4, 5, 6)]  # 创建包含元组的列表
list = [True, False]  # 创建包含布尔值的列表
list = [1, "2", {"a": 1}, (2), True] #  创建包含不同类型元素的列表

 

  使用list() 函数创建 list() 是一个内置函数,用于将可迭代对象转换为列表。 其中,可迭代对象可以是字符串、元组、集合、字典等。list() 函数将可迭代对象的每个元素收集起来,并返回一个新的列表。
string = "Hello"
my_list = list(string)  # 将字符串转换为列表

my_tuple = (1, 2, 3)
my_list = list(my_tuple)  # 将元组转换为列表

my_set = {1, 2, 3}
my_list = list(my_set)  # 将集合转换为列表

my_dict = {'a': 1, 'b': 2, 'c': 3}
my_list = list(my_dict)  # 将字典的键转换为列表

2、列表的运算

符号 说明
+ 列表连接
* 重复元素
in/not in 成员判断
= != > < 列表比较
加号运算符+可以将两个列表连接成一个新的列表。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2)

# 输出结果
[1, 2, 3, 4, 5, 6]
  乘号运算符*可以将列表重复指定次数
my_list = [1, 2, 3]
print(my_list * 3)

# 输出结果
[1, 2, 3, 1, 2, 3, 1, 2, 3]
  使用关键字 innot in 可以判断元素是否存在于列表中
list = [1, 2, 3, 4, 5]
print(3 in list)    # 输出:True
print(2 not in list)  # 输出:False
  列表可以进行比较运算符的比较,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(list1 == list2)  # 输出:True
print(list1 != list2)  # 输出:False
print(list1 > list2)  # 输出:False
print(list1 < list2)  # 输出:False

3、列表切片

在字符串中我们也讲了字符串的切片,大致是一样的,我们可以通过下标获取列表的某个元素
# 列表切片
list = [1, 2, 3, 4, 5]  # 一共6个字符

print(list[0])  # 取第1个字符
print(list[1])  # 取第2个字符
print(list[5])  # 取第6个字符

print(list[-1])  # 取倒数第1个元素
print(list[-3])  # 取倒数第4个元素

# 输出结果
1
2
IndexError: list index out of range
5
3
取不到元素时会报:索引越界  
my_list[start:end:step]
  • start:切片的起始索引(包含),默认为 0。
  • end:切片的结束索引(不包含),默认为列表的长度。
  • step:切片的步长(可选),表示每次取元素的间隔,默认为 1。
对了,如果我们在切片操作中,如果不指定起始位置,默认为索引0(列表的开头)。如果不指定终止位置,默认为列表的长度(列表的结尾),列表的长度可以用len(list)来得到
my_list = [1, 2, 3, 4, 5]

print(my_list[:])  # 取全部元素
print(my_list[0:])  # 取全部元素
print(my_list[:len(my_list)])  # 取全部元素

print(my_list[2:])  # 取第3个元素之后的所有元素
print(my_list[-4:])  # 取倒数第4个元素到结尾的所有元素

print(my_list[1:5])  # 取第2个元素到第4个元素
print(my_list[0:-3])  # 取第1个元素到倒数第3个元素
print(my_list[1:-1])  # 取第2个元素到倒数第2个元素

# 输出结果
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[3, 4, 5]
[2, 3, 4, 5]
[2, 3, 4, 5]
[1, 2]
[2, 3, 4]
  高级的例子
my_list = [1, 2, 3, 4, 5,6]
print(my_list[::1])  # 取全部元素

print(my_list[::-1])  # 倒序取所有元素
print(my_list[::2])  # 取所有元素,每两个取一个
print(my_list[1:6:2])  # 取第2个字符到第5个元素,每两个取一个

# 输出结果
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
[1, 3, 5]
[2, 4]
  有个思考,我们通过切片后的列表跟原来的列表还有关系吗? 我们来验证下:
my_list = [1, 2, 3, 4, 5, 6]
my_list2 = my_list[::1]  # 取全部元素

print(my_list, id(my_list))
print(my_list2, id(my_list2))

# 输出结果
[1, 2, 3, 4, 5, 6] 2311174617984
[1, 2, 3, 4, 5, 6] 2311175950144
如果不查看内存地址,发现真的是一模一样,其实切片后的列表和原始列表是完全独立的,它们是两个不同的列表对象

4、列表的基本函数

函数名 含义
len(list) 返回列表的元素个数
max(list) 返回列表中最大的元素
min(list) 返回列表中最小的元素
my_list = [1, 4, 3, 11, 7, 8, 15]

print(len(my_list))  # 返回列表长度
print(max(my_list))  # 返回列表最大值
print(min(my_list))  # 返回列表最小值

# 输出结果
7
15
1
是不是感觉很简单   但是我举一个例子,让你知道max()函数其实不一般   max() 函数的语法和参数如下:
max(iterable, *[, key, default])
  • iterable:表示可迭代对象,例如列表、元组、字符串等。
  • key(可选):表示一个函数,用于指定比较的关键字。默认为 None,表示直接比较元素的大小。
  • default(可选):表示当可迭代对象为空时,返回的默认值。如果不提供该参数,并且可迭代对象为空,则会引发 ValueError
大体意思是如果我们并设置key参数,默认按照字典顺序比较元素的大小,如果我们设置了key参数 key=len 参数,其中 len 是一个内置函数。len() 函数用于获取字符的个数,就是我们使用元素的长度来进行比较   我们接下来做几个简单的编程题熟悉一下 1、有该列表my_list = [10, 20, 30, 40, 50],求该列表的所有元素的平均值 2、有该列表["apple", "banana", "orange", "kiwi"],求列表中最长的字符串,并返回其长度   第一题我们思路应该是先求出各个元素的和,然后在求出元素的个数,相除就可以了
my_list = [10, 20, 30, 40, 50]

print(sum(my_list) / len(my_list))  # 返回列表元素的平均值
  第二题我们正常思路可能都是把列表里的每个字符串循环输出,然后求每个字符串的长度作比较,然后取出最长的字符串,那现在我们用max函数试一下
my_list = ["apple", "bananana", "orange", "kiwi"]
print(max(my_list))  

# 输出结果
orange
输出结果是orange,但是从我们肉眼来看,明明是bananana,所以这样比较是有错的,列表里的元素是字符串,不是整数,而我们max函数默认是按照字典顺序比较的,如果我们想让字符串长度比较,需要在max函数中指定 key=len 参数,我们告诉 max() 函数按字符串的长度进行比较
my_list = ["apple", "bananana", "orange", "kiwi"]
print(max(my_list,key=len))

# 输出结果
bananana

5、列表的常用函数

在之前写过一篇Python的列表函数篇列表函数,可以快速查找我们需要的函数
函数名   含义
  追加&&拓展&&插入   list.append(element) 在列表末尾添加一个元素
list.extend(iterable) 在列表末尾追加可迭代对象中的所有元素
list.insert(index, element) 在指定索引位置插入一个元素
修改 list[索引] = 要修改的值 通过下标直接修改
  删除   list.remove(element) 移除列表中第一个匹配的指定元素
list.pop(index=-1) 移除并返回指定索引位置的元素。如果未提供索引,则默认移除并返回最后一个元素
list.clear() 移除列表中的所有元素,使其变为空列表
统计个数 list.count(element) 返回指定元素在列表中出现的次数
获取元素下标 list.index(element, start=0, end=len(list)) 返回列表中第一个匹配指定元素的索引。
    排序&&翻转&&复制   list.sort(key=None, reverse=False) 对列表进行排序,可以指定排序关键字和是否降序排序
list.reverse() 反转列表中的元素顺序
list.copy() 返回列表的一个浅拷贝副本
搞懂每个函数的作用,然后多加练习   追加&&拓展&&插入
# 追加
list = [1, 2, 3, 4, 5]
list.append(6)
print(list)


# 拓展
list = [1, 2, 3, 4, 5]
list.extend([6, 7, 8, 9])
print(list)


# 插入
list = [1, 2, 3, 4, 5]
list.insert(0, 0)
print(list)

# 输出结果
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5]
  修改
# 修改
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list[0] = 100
print(list)

# 输出结果
[100, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  删除
# 移除指定元素
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
list.remove(1)
print(list)  # 移除了第一个1

# 根据下标移除元素
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
print(list.pop(4))  # 根据下标去除元素,会有返回值
print(list)

#  移除所有元素
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
list.clear()
print(list)

# 输出结果
[2, 3, 4, 5, 6, 7, 8, 9, 1]
5
[1, 2, 3, 4, 6, 7, 8, 9, 1]
[]
  统计个数
# 列表统计个数
list = [10, 2, 3, 4, 5, 10, 7, 8, 9, 10]
print(list.count(10))

# 输出结果
3
  获取元素下标
# 列表获取元素下标
list = [10, 2, 3, 4, 5, 10, 7, 8, 9, 10]

print(list.index(10))  # 元素多个,只返回第一个元素的下标0
  排序&&翻转&&复制
# 列表排序
list = [1, 3, 2, 5, 4]
list.sort()
print(list)

# 列表反转
list = [1, 3, 2, 5, 4]
list.reverse()
print(list)

#  列表复制
list = [1, 3, 2, 5, 4]
list1 = list.copy()
print(list1)

day06练习

初级 1.声明一个空的list 2.声明一个列表,包含姓名、年龄、身高、是否毕业、住址的元素 3.计算2题中列表的长度 4.获取2题中列表的第一、中间、最后一个列表项   中级 1.声明一个列表为my_company = ['xiaomi', 'huawei', 'vivo', 'oppo', 'apple', 'samsung', 'meizu'] 1) 打印输出列表my_company 2) 获取列表my_company 的长度 3) 分别输出列表my_company 的第一、中间、最后公司名 4) 更改列表my_company 的列表项'xiaomi''hongmi' 5) 追加iqoomy_company 中 6) 新增relememy_company 中间的位置 7)选择my_company 中的'vivo'改为全部大写 8)使用 '-' 字符将my_company 的列表数据全部连接起来 9) 判断'oppo'是否存在于my_company 列表中 10)对my_company 列表进行排序,升序和降序 11) 对my_company 列表进行翻转 12) 获取my_company 列表的前三项 13) 获取my_company 列表的后三项 14) 移除my_company 列表的第一个元素 15) 移除my_company 列表的中间元素 16) 移除my_company 列表的最后的一个元素 17) 移除my_company 列表的全部元素 18) 删除my_company 列表 19) 将new_company = ['alibaba', 'tenxun', 'baidu']合并到my_company 列表中,输出打印新列表   高级 1.有该列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],求该列表元素偶数的个数 2.有该列表[8, 9, 10, 6, 7, 4, 8, 2, 1, 4],使用排序求出该列表的最大值和最小值 3.有该列表[1, 2, 3, 2, 4, 3, 5, 6, 1],输出该列表中唯一元素,追加到一个新的空列表中    

标签:company,元素,list,day06,列表,print,my
From: https://www.cnblogs.com/nuomituan/p/17800975.html

相关文章

  • java根据模板生成表格和列表
    1、模板所有的标签都是以{{开始,以}}结束。{{template}}文本{{@template}}图片{{#template}}表格{{*template}}列表{{+template}}Word文档合并{{?template}}{{/template}}if和foreach功能 2、引入包<!--POI依赖使用xlsxxml的格式(即X......
  • 分页查询任务列表 支持SQL
    ///<summary>///分页查询任务列表///</summary>///<paramname="where"></param>///<returns></returns>publicPageModel<TaskModel>GetListByPageView(TaskSearchModelwhere){introwCount=0;try......
  • [Vue]列表渲染v-for
       1.用于展示列表数据  2.语法:v-for="(item,index)inxxx":key="yyy"  3.可遍历:数组、对象、字符串(不常用)、指定次数(不常用) <body><divid="root"><!--遍历数组--><h2>人员列表</h2><ul&g......
  • super的查找顺序严格按照mro列表找
    调用父类方法的第一种方式:指名道姓的方式,跟继承关无关#object写与不写,在py3中没有区别.#有的人在py3中这么写,是为了向下兼容,使复制到py2中也能使用classPerson(object):def__init__(self,name,age):self.name=nameself.age=agedefi......
  • 开放寻址法模拟散列表
    文章目录QuestionIdeasCodeQuestion维护一个集合,支持如下几种操作:Ix,插入一个整数x;Qx,询问整数x是否在集合中出现过;现在要进行N次操作,对于每个询问操作输出对应的结果。输入格式第一行包含整数N,表示操作数量。接下来N行,每行包含一个操作指令,操作指令为Ix,Qx中的......
  • 数据结构之散列表与哈希函数初识
    一:概述一:为什么需要散列表*在我们的程序世界里,往往也需要在内存中存放这样一个“词典”,方便我们进行高效的查询和统计。*例如开发一个学生管理系统,需要有*通过输入学号快速查找对应学生的姓名的功能。*这里不必要每次都去查询数据库,而可以在内存中建立一个缓存表,这样做可以......
  • 如果后端返回上万条数据,前端如何渲染成长列表呢?
    使用虚拟列表   只对可见区域进行渲染,对非可见区域中的数据不渲染或部分渲染的技术,从而达到极高的渲染性能,虚拟列表其实是按需显示的一种实现。   虚拟列表一般包含三个组成部分:可视区域、列表渲染区域、真实列表区域。列表渲染区大于等于可视区。比如容器区域需要渲......
  • 【Qt6】列表模型——几个便捷的列表类型
    前面一些文章,老周简单介绍了在Qt中使用列表模型的方法。很明显,使用ItemModel在许多时候还是挺麻烦的——要先建模型,再放数据,最后才构建视图。为了简化这些骚操作,Qt提供了几个便捷类。今天咱们逐个看看。一、QListWidget 这厮对应的ListView,用来显示简单的列表。要添加列......
  • 列表包裹元组,指定元组中数字大小排序字段operator用法
    importoperatorsomelist=[(1,5,8),(6,2,4),(9,7,5)]somelist.sort(key=operator.itemgetter(0))print(somelist)#[(1,5,8),(6,2,4),(9,7,5)]somelist.sort(key=operator.itemgetter(1))print(somelist)#[(6,2,4),(1,5,8),(9,7,5)]somelist.sor......
  • MFC---常用控件(下)(列表控件、树控件、标签控件)
    列表控件CListCtrl常用属性设置:view->Report(报表方式)常用接口关联控件变量后,测试接口://设置风格样式 //LVS_EX_GRIDLINES网格 //LVS_EX_FULLROWSELECT选中整行 m_list.SetExtendedStyle(m_list.GetExtendedStyle() |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); //插......