码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python序列操作指南:列表、字符串和元组的基本用法和操作


    文章目录

      • 序列
        • 列表
          • 创建列表
          • 访问元素
          • 修改元素
          • 添加和删除元素
        • range()
        • 字符串
          • 创建字符串
          • 访问字符
          • 字符串切片
          • 修改字符串
        • 元组
          • 创建元组
          • 访问元素
          • 获取元素数量
          • 元组的特点:
      • 可变对象
        • 改变对象的值
        • 改变变量的指向
        • 比较运算符
        • 总结
    • python精品专栏推荐
      • python基础知识(0基础入门)
      • python爬虫知识

    序列

    序列是Python中最基本的一种数据结构,它用于保存一组有序的数据。所有的数据在序列中都有一个唯一的位置(索引),并且序列中的数据会按照添加的顺序来分配索引。Python中的序列包括列表、字符串、元组等类型。

    列表

    列表是Python中最常用的数据类型之一,它是一个可变的有序序列,可以通过索引来访问其中的元素。下面是一些常见的操作:

    创建列表

    列表可以通过方括号 [] 来创建,其中可以包含任意类型的元素。

    my_list = [1, 2, "hello", 3.5, True]
    print(my_list)  # 输出:[1, 2, 'hello', 3.5, True]
    
    • 1
    • 2
    访问元素

    可以通过索引来访问列表中的元素,索引从0开始,表示第一个元素。

    my_list = [1, 2, "hello", 3.5, True]
    
    # 访问第一个元素
    print(my_list[0])  # 输出:1
    
    # 访问倒数第一个元素
    print(my_list[-1])  # 输出:True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    修改元素

    可以通过索引来修改列表中的元素。

    my_list = [1, 2, "hello", 3.5, True]
    
    # 修改第三个元素
    my_list[2] = "world"
    print(my_list)  # 输出:[1, 2, 'world', 3.5, True]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    添加和删除元素

    可以使用 append() 方法向列表末尾添加元素,使用 insert() 方法在指定位置插入元素,使用 pop() 方法删除指定位置的元素。

    my_list = [1, 2, "hello", 3.5, True]
    
    # 添加元素
    my_list.append("how are you")
    print(my_list)  # 输出:[1, 2, 'hello', 3.5, True, 'how are you']
    
    # 在指定位置插入元素
    my_list.insert(2, "Python")
    print(my_list)  # 输出:[1, 2, 'Python', 'hello', 3.5, True, 'how are you']
    
    # 删除指定位置的元素
    my_list.pop(2)
    print(my_list)  # 输出:[1, 2, 'hello', 3.5, True, 'how are you']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    range()

    range()函数用于生成一个自然数序列,具体如下:

    range()函数可以使用三个参数进行调用,分别是起始位置、结束位置和步长。具体说明如下:

    1. 如果只提供一个参数,即range(stop),则默认起始位置为0,步长为1,生成一个从0到stop-1的自然数序列。

      r = range(5)  # 生成序列[0, 1, 2, 3, 4]
      
      • 1
    2. 如果提供两个参数,即range(start, stop),则生成一个从start到stop-1的自然数序列,步长默认为1。

      r = range(0, 10)  # 生成序列[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      
      • 1
    3. 如果提供三个参数,即range(start, stop, step),则生成一个从start到stop-1的自然数序列,步长为step。

      r = range(0, 10, 2)  # 生成序列[0, 2, 4, 6, 8]
      r = range(10, 0, -1)  # 生成序列[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
      
      • 1
      • 2

    需要注意的是,range()函数返回的是一个range对象,而不是直接返回一个列表。如果需要将range对象转换为列表,可以使用list()函数进行转换,如list(range(5))。

    通过range()函数可以方便地在for循环中执行指定次数的迭代操作,可以更简洁地实现类似的效果。

    字符串

    字符串是一种不可变的序列类型,表示由一系列字符组成的对象。下面是一些常见的操作:

    创建字符串

    字符串可以通过单引号 ' ' 或双引号 " " 来创建。

    my_string = "hello world"
    print(my_string)  # 输出:hello world
    
    • 1
    • 2
    访问字符

    可以通过索引来访问字符串中的字符,索引从0开始,表示第一个字符。

    my_string = "hello world"
    
    # 访问第一个字符
    print(my_string[0])  # 输出:h
    
    # 访问倒数第一个字符
    print(my_string[-1])  # 输出:d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    字符串切片

    可以使用切片操作来获取指定范围内的子字符串,语法为 [起始索引:结束索引]。不包含结束索引所在位置的字符。

    my_string = "hello world"
    
    # 获取前5个字符
    print(my_string[:5])  # 输出:hello
    
    # 获取从第6个字符开始到最后的子字符串
    print(my_string[6:])  # 输出:world
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    修改字符串

    由于字符串是不可变类型,不能直接修改其中的字符。如果需要修改字符串,可以使用字符串的切片和加法操作来实现。

    my_string = "hello world"
    
    # 修改第一个字符
    my_string = "H" + my_string[1:]
    print(my_string)  # 输出:Hello world
    
    • 1
    • 2
    • 3
    • 4
    • 5

    元组

    元组是一种不可变的序列类型,表示由一系列元素组成的对象。与列表不同,元组的元素不可更改。
    下面是一些常见的操作:

    创建元组

    元组可以通过圆括号 () 来创建,其中可以包含任意类型的元素。

    my_tuple = (1, 2, "hello", 3.5, True)
    print(my_tuple)  # 输出:(1, 2, 'hello', 3.5, True)
    
    • 1
    • 2
    访问元素

    可以通过索引来访问元组中的元素,索引从0开始,表示第一个元素。

    my_tuple = (1, 2, "hello", 3.5, True)
    
    # 访问第一个元素
    print(my_tuple[0])  # 输出:1
    
    # 访问倒数第一个元素
    print(my_tuple[-1])  # 输出:True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    获取元素数量

    可以使用 len() 方法获取元组中元素的数量。

    my_tuple = (1, 2, "hello", 3.5, True)
    
    # 获取元素数量
    print(len(my_tuple))  # 输出:5
    
    • 1
    • 2
    • 3
    • 4
    元组的特点:
    1. 元组使用圆括号 () 来创建,可以是空元组或包含多个元素的元组。

      empty_tuple = ()
      my_tuple = (1, 2, 3, 4, 5)
      
      • 1
      • 2
    2. 元组中的元素可以是任意数据类型,并且元素之间用逗号 , 分隔。

      my_tuple = (10, 'hello', True, [1, 2, 3])
      
      • 1
    3. 元组是不可变的,意味着一旦创建,就不能修改元组的元素。尝试修改元组的元素会引发 TypeError 错误。

      my_tuple[0] = 100  # 报错:TypeError: 'tuple' object does not support item assignment
      
      • 1
    4. 可以使用索引访问元组中的元素,索引从0开始。也可以使用切片来获取元组的子集。

      print(my_tuple[0])     # 输出:10
      print(my_tuple[1:3])   # 输出:('hello', True)
      
      • 1
      • 2
    5. 元组支持解包(或称为解构),可以将元组的每个元素赋值给一个变量。

      a, b, c, d = my_tuple
      print(a)  # 输出:10
      print(b)  # 输出:'hello'
      
      • 1
      • 2
      • 3
    6. 如果不确定元组的长度,可以使用 * 来获取剩余的元素。

      a, *b = my_tuple
      print(a)  # 输出:10
      print(b)  # 输出:['hello', True, [1, 2, 3]]
      
      • 1
      • 2
      • 3

    元组在以下情况下比较有用:

    • 当希望数据不可变时,可以使用元组作为容器。
    • 在函数中返回多个值时,可以使用元组简洁地返回多个值。

    请注意,元组是不可变对象,所以无法向元组中添加、删除或修改元素。如果需要在操作数据时进行修改,应使用列表(list)类型。

    可变对象

    每个对象中都保存了三个数据:

    • id(标识)
    • type(类型)
    • value(值)

    对于列表来说,它就是一个可变对象。比如我们有一个列表 a = [1, 2, 3]。

    现在让我们来进行一些操作:

    改变对象的值

    我们可以通过变量去修改对象的值,例如 a[0] = 10。这个操作并不会改变变量所指向的对象,而只是修改了对象的值。

    请注意以下几点:

    • 当我们修改对象时,如果有其他变量也指向了该对象,那么修改也会在其他变量中体现。
    • 修改对象的值并不会改变变量本身。

    改变变量的指向

    除了改变对象的值,我们还可以给变量重新赋值来改变其指向的对象。例如,执行 a = [4, 5, 6]。

    请注意以下几点:

    • 给变量重新赋值会改变变量所指向的对象。
    • 为一个变量重新赋值时,不会影响其他的变量。

    总结起来,只有在为变量赋值时才是真正修改了变量,而其他操作都是在修改对象。

    下面是一个代码示例,帮助理解上述概念:

    a = [1, 2, 3]
    b = a
    
    print(a)  # 输出:[1, 2, 3]
    print(b)  # 输出:[1, 2, 3]
    
    a[0] = 10
    
    print(a)  # 输出:[10, 2, 3]
    print(b)  # 输出:[10, 2, 3]
    
    a = [4, 5, 6]
    
    print(a)  # 输出:[4, 5, 6]
    print(b)  # 输出:[10, 2, 3]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    比较运算符

    在Python中,我们有几种比较运算符可以用来比较两个对象的值和身份:

    • ==:比较两个对象的值是否相等。
    • !=:比较两个对象的值是否不相等。
    • is:比较两个对象的身份是否相等,即是否指向同一个对象。
    • is not:比较两个对象的身份是否不相等。

    考虑以下代码:

    a = [1, 2, 3]
    b = [1, 2, 3]
    
    print(a, b)
    print(id(a), id(b))
    print(a == b)  # 输出:True,a和b的值相等
    print(a is b)  # 输出:False,a和b不是同一个对象
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这个例子中,我们创建了两个列表 a 和 b,它们的值是相等的,但它们不是同一个对象。所以,使用==运算符会返回True,而使用is运算符会返回False。

    总结

    本篇博文涵盖了多个与序列相关的主题。

    首先,我们介绍了不同类型的序列,包括列表、字符串和元组。我们讨论了如何创建和访问它们,并提供了修改元素、添加和删除元素的方法。接下来,我们介绍了range()函数,它可以方便地生成自然数序列,用于循环和迭代操作。

    在讨论字符串方面,我们学习了如何创建字符串、访问单个字符以及使用切片来获取子串。此外,我们指出了字符串是不可变对象,无法直接修改,但可以通过创建新的字符串来实现修改。

    当讨论元组时,我们解释了如何创建元组、访问元素以及获取元组的长度。同时,我们强调了元组是不可变对象,一旦创建就无法修改。我们还介绍了如何改变对象的值和改变变量指向的操作。

    总体而言,本篇博文提供了关于序列、range()函数、字符串和元组的基本知识和操作。这些内容对于编程中处理数据、循环迭代和操作不同类型的序列非常重要。

    希望本篇博文能够帮助您对序列和相关操作有更清晰的了解。

    python精品专栏推荐


    python基础知识(0基础入门)

    【python基础知识】0.print()函数
    【python基础知识】1.数据类型、数据应用、数据转换
    【python基础知识】2.if条件判断与条件嵌套
    【python基础知识】3.input()函数
    【python基础知识】4.列表和字典
    【python基础知识】5.for循环和while循环
    【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
    【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)
    【python基础知识】7.实操-用Python实现“文字PK”小游戏(二)
    【python基础知识】8.编程思维:如何解决问题-思维篇
    【python基础知识】9.函数的定义和调用
    【python基础知识】10.用函数编写程序 - 实操篇
    【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
    【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
    【python基础知识】12.类与对象(一)
    【python基础知识】12.类与对象(二)
    【python基础知识】13.类与对象(三)
    【python基础知识】13.类与对象(四)
    【python基础知识】14.图书管理系统的搭建(类与对象实操)
    【python基础知识】15.编码基础知识
    【python基础知识】16.文件读写基础及操作
    【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)
    【python基础知识】17.模块的概念以及如何引入
    【python基础知识】18.实操-使用python自动群发邮件
    【python基础知识】19.产品思维以及流程图的使用 - 思维篇
    【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
    【python基础知识】21.高效偷懒的正确打开方式-毕业篇
    【python文件处理】CSV文件的读取、处理、写入
    【python文件处理】Excel自动处理(使用 openpyxl)
    【python文件处理】-excel格式处理


    python爬虫知识

    【python爬虫】1.爬虫基础知识
    【python爬虫】2.网页基础知识
    【python爬虫】3.爬虫初体验(BeautifulSoup解析)
    【python爬虫】4.爬虫实操(菜品爬取)
    【python爬虫】5.爬虫实操(歌词爬取)
    【python爬虫】6.爬虫实操(带参数请求数据)
    【python爬虫】7.爬到的数据存到哪里?
    【python爬虫】8.温故而知新
    【python爬虫】9.带着小饼干登录(cookies)
    【python爬虫】10.指挥浏览器自动工作(selenium)
    【python爬虫】11.让爬虫按时向你汇报
    【python爬虫】12.建立你的爬虫大军
    【python爬虫】13.吃什么不会胖(爬虫实操练习)
    【python爬虫】14.Scrapy框架讲解
    【python爬虫】15.Scrapy框架实战(热门职位爬取)
    【python爬虫】16.爬虫知识点总结复习

  • 相关阅读:
    【斗破年番】官方改编用心了,彩鳞怀孕并未删,萧潇肯定登场,真相在丹药身上
    `英语` 2022/8/3
    sudo apt update 后会出现的一堆问题的解决
    电机与拖动 - 1 绪论
    判断字符串中是否包含中文
    NFS服务器搭建与管理
    观察者模式
    超视频时代音视频架构建设与演进
    Tetrate万凯:SkyWalking MAL的监控虚拟机和Kubernetes实践
    ns3入门基础教程
  • 原文地址:https://blog.csdn.net/qq_41308872/article/details/132760894
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号