首页 > 编程语言 >一文搞定Python面试必问知识点——列表

一文搞定Python面试必问知识点——列表

时间:2023-09-27 11:35:17浏览次数:34  
标签:知识点 必问 Python 元素 list 列表 l6 l1 print


Python3有6种标准类型:(Number(数字)、String(字符串)、Tuple(组),List(列表)、Dictionary(字典)、Set(集合))。其中,列表是Python中最基本也是最常用的数据结构。列表中的每个元素都分配一个数字,即它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。在关于python测试开发的面试中,列表是被问及频率最高的知识点,没有之一!本文详细的介绍了列表中常用的方法,只要读者理解了这些方法,那么就搞定了python的列表,无论是应对面试还是解决工作中的实际问题都会感到得心应手!

以下代码都经过了实际测试,建议大家亲自动手调试,一定会有不一样的收获!

列表基础

l1 = ['a','b','c','d']

# list 转换成string

str = '|'.join (l1)

print(str)

#元素是否在列表中

print( 'a'in l1)

#list 元素更改值

l1[0]='a1'

print(l1)

#访问list中的元素

print(l1[0]) #第一个元素

print(l1[len(l1)-1]) #最后一个元素

#遍历list

#方法1

print (l1)

#方法2

for i in l1:

    print(i)

#方法3,索引和值

for i , value  in enumerate(l1):

    print(i , value)

#获取list长度

print(len(l1))

#添加元素

#list尾部添加元素

l1.append('e')

print(l1)

#list指定位置添加元素

l1.insert(0,'a')

print(l1)

#删除元素

#删除list尾部元素

l1.pop()

print(l1)

#删除list指定位置的元素

l1.pop(1)

print(l1)

#删除list中的某某元素

l1.remove('a')

print(l1)

#查找list中出现某某元素的索引位置

print(l1.index('b'))

#list元素反转

l1.reverse()

print(l1)

#清空列表

l1.clear()

print(l1)

#查找list特定元素的个数

l2=[1,3,9,9,5,4]

print(l2.count(9))

#list排序,注意l2.sort()无返回值,所以直接print(l2.sort())返回None

l2.sort() #默认升序排序

print(l2)

l2.sort(reverse=True) #降序排序

print(l2)

#返回列表元素最大值

print(max(l2))

#返回列表元素最小值

print(min(l2))

切片

'''

切片(list 取值的一种方法)

list[n:m]  切片是不包含后面那个元素的值(顾头不顾尾)

list[:m] 如果切片前面一个值缺省的话,从开头开始取

list[n:] 如果切片后面的值缺省的话,取到末尾

list[:] 如果全部缺省,取全部

list[n:m:s] s:步长  隔多少个元素取一次

步长是正数,从左往右取

步长是负数,从右往左取

'''

l3=['a','b','d','e','f','g']

print(l3[1:3])  #输出['b', 'd']

print(l3[2:])  #输出['d', 'e', 'f', 'g']

print(l3[0:3:2])  #输出['a', 'd']

print(l3[::-1])  #输出['g', 'f', 'e', 'd', 'b', 'a'] 倒序输出

列表生成式

'''

列表生成式

列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式。

'''

#用法1 range

'''

range() 函数可创建一个整数列表

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)实例

'''

print(range(5)) #创建列表,值是[0, 1, 2, 3, 4]

print(range(0,10,2))#创建列表,值是[0, 2, 4, 6, 8]

#用法2,列表生成式还可以用一行语句代替循环生成lsit

l4=[1,2,3,4]

l5=list(x * x for x in l4) #x * x是新建list中的元素创建规则,即新建的list是l4中的元素*元素得来

print(l5)

列表的拷贝

l6=[1,2,3,4]

l7=l6  #浅拷贝,浅拷贝即只拷贝引用,仍然指向同一个内存地址,修改其中任何一个都会使所有的引用改变

l8=l6[:] #深拷贝,拷贝内容至新的内存地址当中,两个list有不同的引用

#l8=l6.copy() #深拷贝

print(id(l6)) #l6和l7指向同一个地址

print(id(l7)) #l6和l7指向同一个地址

print(id(l8)) #l6和l7指向不同地址

print(l7)

print(l8)

l6.reverse() #改变l6

print(l7) #输出[4, 3, 2, 1],浅拷贝影响输出

print(l8) #输出[1, 2, 3, 4],深拷贝未影响输出

标签:知识点,必问,Python,元素,list,列表,l6,l1,print
From: https://blog.51cto.com/liwen629/7621999

相关文章

  • 一文读懂Python中的全局变量局部变量和作用域
    局部变量和全局变量是面试热点通常小白在写代码时,只知道引用变量来应对一些基础的编码问题,当面试官问及局部变量和全局变量的具体细节时,就会一脸懵逼,傻傻分不清楚!其实想要彻底了解局部变量和全局变量的关系,本质是大家需要明白何为作用域!这篇文章会带大家彻底搞懂这三者之的唇齿相依......
  • Python 练习实例5
    目:输入三个整数x,y,z,请把这三个数由小到大输出。程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。程序源代码:实例(Python2.0+)#!/usr/bin/python#-*-coding:UTF-8-*-l=[]......
  • Python 练习实例6
    题目:斐波那契数列。程序分析:斐波那契数列(Fibonaccisequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。在数学上,费波那契数列是以递归的方法来定义:F0=0(n=0)F1=1(n=1)Fn=F[n-1]+F[n-2](n=>2)程序源代码:方法一#!/usr/bin/python......
  • python numpy所有的数据类型 查看 np.sctypeDict
    >>>np.sctypeDict{'?':<class'numpy.bool_'>,0:<class'numpy.bool_'>,'byte':<class'numpy.int8'>,'b':<class'numpy.int8'>,1:<class'num......
  • Python中的函数注释:参数有冒号,声明后有-> 箭头
    我在查看python的fixture源码时发现fixture的方法定义形式如下:deffixture(fixture_function:Optional[_FixtureFunction]=None,*,scope:"Union[_Scope,Callable[[str,Config],_Scope]]"="function",params:Optional[Iterable[object]]......
  • 接口测试系列文章3——Python接口测试其实只需三步!
    接口测试通用步骤小品中曾说过,大象放冰箱里分三步!分别是:一、把冰箱门打开二、把大象放到冰箱里三、把门关上那么问题来了!通过代码做接口测试分几步呢?答:也分三步!其实无论是手工进行接口测试还是通过代码进行接口测试,三个核心步骤如下:构建接口发送接口校验接口Python编码进行......
  • 接口测试系列文章2——接口测试面试必问的知识点(建议收藏)
    面试的本质我们每个人或多或少都经历过大大小小的各种面试,少则几次多着几十次,更甚者上百次,那么我们大家是否思考过,面试招聘对于企业来讲究竟意味着什么吗?有的同学会说,当然就是招人干活喽!不错!但是本质上面试是企业自我输血的过程。第一,血型匹配度?也就是价值观和企业是否一致。第二,拥......
  • 进阶Python,从编写Python函数开始!
    好多同学都有这样的疑惑,我学习了python的基础语法,那么具体应用该从哪里入手呢?首先大家要确定,代码必须用起来才能越来越熟练!读懂十行代码不如自己亲自上手遍写一行!代码想熟练最好的方法就是能够通过代码解决工作中的实际问题,例如完成UI自动化测试、接口测试、创建测试数据、构建测试......
  • 测试同学必须熟悉的python模块
    测试同学在进行python的面试过程中,必问的问题是你最常用的python模块有哪些?这些模块解决了你工作中的哪些问题?在这里我把测试同学在实际工作中常用的py模块进行了汇总,本文编写的目的是对各个模块的功能进行概要介绍并没有提供具体api的使用方法,如果大家想要深入了解各个模块api的具......
  • Python高频面试题——装饰器(带大家理解装饰器的本质)
    装饰器概念装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限验证等场景,装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可......