首页 > 编程语言 >Python面试高频问题:修改list中某个元素时的坑

Python面试高频问题:修改list中某个元素时的坑

时间:2023-09-27 10:33:10浏览次数:30  
标签:面试 Python 元素 list 修改 print test 高频


Python面试高频问题:修改list中某个元素时的坑_list

在Python面试中经常会考这样一个题目 ,遍历列表,如果列表中有某某元素,那么将其替换成"test"。题目看似简单,其实有个坑在里面!从面试结果来看,大多数同学都会这样写:

l=["a","b","c"]
for i in l:
    if "a" == i:
        i="test"
print (l)

运行后,大家会发现输出 的l值还是['a', 'b', 'c'],会不会感到奇怪呢?我相信绝大多数同学都会认为l的值应该是['test', 'b', 'c']!这是why? 其实很简单,这里的i虽然表示的是list 中的元素,但i只是一个临时变量而已!使用i="test并没有影响到l[0]的实际值。

如果想要修改l[0]的值,我们需要这样写:

for i in range(len(l)):
     if "a" == l[i]:
         l[i]="test"
print (l)

结果会输出['test', 'b', 'c']。这里的i是list中的元素索引,当我们在代码中加入 print(i)时 ,会看到输出 0 1 2,而l[i]="test" 表示把"test"赋值给list中某个索引位置的值。

还有一种方式可以修改list中的值,就是通过枚举法,实际工作中我们可能不经常使用,具体代码如下:

for i,value in enumerate(l):
     if "b" == l[i]:
         l[i] = "test"
print (l)

输出的值是['test', 'test', 'c'],这里的 i是元素索引,value是具体的元素值。

这个题目看似简单,但确实让很多面试的同学阴沟翻船!

最后我们来简单总结一下:

for i in l 应用在只是遍历查询,不需要对list中的值进行修改的场景;

for i in range(len(l))可以应该用到对list中的值进行修改的场景。

怎么样?get到这个点了吗?原创不易,如果文章帮到了你,劳烦点赞转发!

 

标签:面试,Python,元素,list,修改,print,test,高频
From: https://blog.51cto.com/liwen629/7621236

相关文章

  • python range中的步长必须是整数 numpy则可以是小数
    >>>foriiinrange(1,10,0.1): print(ii)Traceback(mostrecentcalllast):File"<pyshell#4>",line1,in<module>foriiinrange(1,10,0.1):TypeError:'float'objectcannotbeinterpretedasaninteger>>......
  • Python脚本连接Oracle数据库并验证成功
    #yaml文件存储数据->root\Data\oracle_admin_f_shozaiko.yaml#TestDataforOracleDB:ADMIN->F_SHOZAIKO-name:connecttoOraclerequest:uname:adminupwd:P823!ApoLhost:rf-oms.cbfvvrud0bld.ap-northeast-1.rds.amazonaws.com:1521/rfomsqu......
  • python学习框架
    Python简介与安装Python的历史与特点Python的安装与配置Python基础语法变量与数据类型运算符与表达式控制结构(条件判断与循环)函数与模块错误处理与异常Python数据结构列表(List)元组(Tuple)集合(Set)字典(Dictionary)Python面向对象编程类与对象继承与多态......
  • Python的Selenium库:鼠标滚动和操作弹出窗口
    Selenium是一个用于自动化web应用测试的开源工具。通过Selenium,我们可以模拟真实用户的操作,如点击、输入、滚动页面等,来测试web应用的稳定性和可靠性。PythonSelenium库是Selenium的一个分支,可以方便地与Python语言结合使用。在PythonSelenium库中,元素定位和文本输入是最常用的......
  • 使用PyCharm敲出你的第一行python代码
    首先安装python解释器国内镜像https://registry.npmmirror.com/binary.html?path=python/   找到软件开始安装   然后下载python开发工具https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC     ......
  • Python datetime 的坑以及时间处理的经验
    最近遇到一个"bug",就是本地datetime的时间上传到数据库,总发现时间显示不对……经过一番痛苦的排查之后,我发现原来是datetime.now()在获取事件信息时,不会添加当前的时区信息。也就是说,获得的结果虽然时分秒和电脑显示一致,但是时区信息为默认的UTC而非我们真正的UTC+8,因此这......
  • 数据库连接:使用Python连接到MySQL、SQLite和MongoDB
    在现代应用程序和数据科学中,数据库连接是至关重要的一部分。Python提供了丰富的库和驱动程序,可以轻松连接各种数据库,包括MySQL、SQLite和MongoDB。本文将介绍如何使用Python连接到这些不同类型的数据库,并提供相应的代码示例。连接到MySQL数据库MySQL是一个流行的关系型数据库管理系......
  • 爬虫与数据抓取:使用Python进行网络爬虫和数据抓取
    在数字时代,数据是金钱。大量的数据可用于分析、洞察、决策和创新。但是,要获取这些数据,您需要一种强大的工具,这就是网络爬虫。本文将介绍如何使用Python进行网络爬虫和数据抓取,让您能够轻松获取所需的信息。什么是网络爬虫?网络爬虫是一种自动化工具,用于从互联网上的网站上抓取信息。......
  • 【Android面试】2023最新面试专题二:ArrayList篇
    1.4 请说一说ArrayList如何保证线程安全,除了加关键字的方式?这道题想考察什么?1、ArrayList的底层原理?考察的知识点ArrayList底层的源码的理解考生如何回答ArrayList如何保证线程安全继承Arraylist,然后重写或按需求编写自己的方法,这些方法要写成synchronized,在这些synchronized的......
  • 在写python数据可视化是遇到点问题,求帮助
       哪里写错了吗,还是有地方写落了,来个大佬帮我疑惑解答吧......