尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Python列表你真的玩透了吗?这可是全网最全的教程,看完秒变大神

Python列表你真的玩透了吗?这可是全网最全的教程,看完秒变大神 仍在因处理一大批数据备受头疼困扰吗, 仍然在运用笨拙方法逐个去执行添加以及删除元素操作吗, 今日, 我们就来完全地拆解其中那个具备无所不能特性的“百宝箱”也就是列表, 别觉得你知晓几个诸如pop之类的方法就自认为很了不起了, 其内里所蕴含的门道, 简直太多了从零开始打造你的第一个列表能够创建列表吗? 那简直是轻而易举的事情只需要运用一对方括号, 将各类事物放置进去, 如此便大功告成了。不管是数字, 还是文字段落, 甚至是另外一个列表, 它不会拒绝任何东西, 可以全部收纳进去。my_first_list []一个空荡荡的列表等待被填满苹果, 牛奶, 面包, 12.5看不同类型也能和平共处列表里面套列表玩的就是心跳但等等你以为只有这一种方法list()函数微微一笑深藏功与名。它能把字符串、元组这些“顽固分子”通通转化成听话的列表。 python list_from_string list(Hello)结果H, e, l, l, o**记住列表是“可变”的**这意味着你创建之后可以随时对它“动手术”想改就改想加就加。这和它的亲戚“元组”可完全不一样。精准定位切片就像切蛋糕对于列表之中的每一个元素而言, 其均具备自身那一被称作索引的“门牌号”, 然而于此存在着一个需万分留意的大坑, 即: 计数乃是自0起始展开的情形首个元素所对应的索引是0, 而非就是1fruits [香蕉, 橙子, 葡萄, 西瓜] print(fruits[0])输出香蕉print()输出西瓜 负数索引从末尾开始-1是最后一个想一次拿好几个切片满足你语法是[开始:结束:步长]。记住一个口诀**“顾头不顾尾”**。结束位置的元素是拿不到的。 python numbers [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[2:5])输出 取索引2到4不包括5print()输出 从头开始取到索引2print()输出0, 2, 4, 6, 8步长为2隔一个取一个print()输出9, 8, 7, 6, 5, 4, 3, 2, 1, 0神操作列表反转**切片不会修改原列表**它只是原列表的一个“快照”或“副本”。想要修改原列表你得用别的方法。增删改查玩转列表的四大法宝有的事物之所以强大, 是由于其具备一系列、全方位一应俱全的“方式手段”。若能恰当运用, 那么使用者便成为掌控数据的神奇变幻之术践行者。添加元素让列表“长大”这段提供的内容似乎存在一些混淆。请明确准确的完整陈述以便我能按照要求进行精确改写。nums 变为 nums.(4, 5)# 不对没办法一次添加两个。extend(iterable)**胃口更大**把另一个列表或可迭代对象里的所有元素一个个拆开接到末尾。 python nums [1, 2] nums.extend([3, 4, 5])nums 变成1, 2, 3, 4, 5insert(index, item)**精准插入**在指定的索引位置前面插入一个新元素。 python nums [1, 3] nums.insert(1, 2)在索引1也就是3的前面插入2nums变成**删除元素给列表“瘦身”** remove(item)**按值删除**。找到第一个匹配的元素把它扔掉。如果元素不存在会报错 python pets [猫, 狗, 仓鼠, 狗] pets.remove(狗)只删除第一个‘狗’pets变成猫, 仓鼠, 狗pop(index)**按位删除**。删除指定索引位置的元素并且**把这个被删除的元素还给你**如果不指定索引默认删除最后一个。 python nums [10, 20, 30, 40] last_item nums.pop()是40nums变成10, 20, 30 nums.pop(1)是20nums变成**其他必备技能** index(item)查找某个元素第一次出现的索引。 count(item)数一数某个元素在列表里出现了几次。 sort()让列表里的元素排队站好默认升序。reverse()让整个列表头尾颠倒。 **重要警告**append和extendremove和pop名字像但干的活完全不同可别搞混了列表推导式一行代码的优雅魔法要是你此刻仍旧借助for循环吭哧吭哧地去创建全新的列表, 那你可就落伍了实际上啊, 列表推导式才是那种无比优雅的写代码方式, 它具备这样的能力, 能够将循环以及条件判断, 统统进行压缩, 最终形成一行既清晰又容易被理解明白的代码。基本结构表达式 for 变量 in 可迭代对象 if 条件传统方法生成0-9的平方列表将会, 针对处于范围为十的情况中的每一个i, 进行, 对i的平方进行某种操作。列表推导式一行搞定i**2 for i in range(10)这还没完它还能玩出花 python只留下偶数evens i, 置于i于范围20之中, 倘若i除以2取余数等于0。把列表里所有字符串变成大写words hello, world, 将 words 中的每个 word, 进行 upper() 操作 , 标点符号。甚至嵌套循环pairs 对于x, 在某个范围内, 对于y, 在某个范围内, 当x不等于y时, 存在(x, y)。**列表推导式不仅代码简洁执行效率也往往更高**。但切记如果逻辑太复杂硬塞进一行推导式反而会降低可读性这时候老老实实用for循环更好。实战演练检验你是不是真懂了光说不练假把式下面几个小挑战动手试试看挑战一数据清洗 你从网上扒下来一个成绩列表 85, 存在缺考情况92, 78, 出现作弊现象, 88, 95。要撰写代码, 将所有不是数字的元素给过滤掉, 并且去计算剩余有效成绩的平均分数。挑战二矩阵转置 给你一个二维列表矩阵 , ,运用列表推导式, 在不使用任何复杂库的情况下, 将其进行转置, 也就是让行变成列, 列变成行, 进而得到。挑战三趣味排序 有一个学生信息列表 小明, 88小红, 92小刚, 85小美, 92将成绩依据从高到低的顺序予以排列, 如果成绩是一样的, 那么便按照名字的字母顺序以升序的方式进行排列, 最终所呈现的结果应该是。小红, 92小美, 92小明, 88小刚, 85提示想想sort()方法的key参数和表达式列表这个在数据结构里最为基础且最为灵活的东西, 宛如你编程工具箱当中的瑞士军刀。它从简单的数据存储开始, 一直到复杂的数据变换, 几乎在各个地方都能见到它的身影。今天所讲的这些内容, 足够你花费一段时间去消化了。然而不要停下脚步, 赶紧打开你的代码编辑器, 将上面所提到的例子以及练习都逐一进行敲击。只有当你的手指头记住了, 知识才真正属于你。那真正称得上高手之人, 并非是知晓了数量众多且极为酷炫的概念, 而是能够将名为“列表”的这种基础工具, 运用到那般出神入化的境地。而你的这段旅程, 才不过刚刚方才起始。
返回列表