`
scm002
  • 浏览: 317156 次
社区版块
存档分类
最新评论

Python基础教程笔记——列表和元组

 
阅读更多

列表和元组

Table of Contents

  • 1 序列概览
  • 2 通用序列操作
    • 2.1 索引
    • 2.2 分片
    • 2.3 序列相加
    • 2.4 乘法
    • 2.5 成员资格
    • 2.6 长度,最大值,最小值
  • 3 列表:Python的“苦力”
    • 3.1 list
    • 3.2 基本列表操作
    • 3.3 列表方法
  • 4 元组
    • 4.1 元组定义:
    • 4.2 tuple函数
    • 4.3 元组的意义:

1 序列概览

  1. 说明:序列包括(列表,元组,字符串,buffer对象,xrange对象)
  2. 注意:列表可以修改,元组不能被修改。
  3. 例子:
>>> edward=["Edward Gumby", 42]

>>> bill =["Bill Gunn", 30]

>>> database = [edward, bill]

>>> database

[['Edward Gumby', 42], ['Bill Gunn', 30]]

>>> database[0]

['Edward Gumby', 42]



2 通用序列操作

 

2.1 索引

  1. 说明:
    1. 索引值可正可负,正索引从0开始,从左往右;负索引从-1开始,从右往左。使用负数索引时,python会从最后一个元素开始计 数。最后一个元素的位置编号是-1;
    2. 字符串可以直接使用索引;
  2. 例子:
>>> str = "Test"



#一般索引

>>> str[0]

'T'

>>> str[1]

'e'



#负数索引

>>> str[-1]

't'

>>> str[-2]

's'



#字符串直接索引

>>> "Test"[0]

'T'

>>> "Test"[1]

'e'

>>> "Test"[-1]

't'

2.2 分片

  1. 说明:使用分片操作来访问一定范围内的元素。分片通过冒号相隔的两个 索引来实现。
  2. 注意:
    1. 第一个索引是需要提取部分的第一个元素的索引值,而最后的索引 则是分片之后右侧剩下部分的第一个元素的索引;
    2. 如果右侧全部提取,则分片时,可以不写右侧索引,也可以将右侧索引 写最后一个元素的下一个索引;
    3. 如果左侧全部提取,刚分片时,左侧索引可以写0,也可以不写;
    4. 设置步长:不指明步长时,步长取1,也可以指定步长,步长不能为 0 ,步长也可以是负数,可以反序输出提取部分。
  3. 例子:
>>> data=[1,2,3,4,5,6,7,8,9,10]

#提取序列的一部分

>>> data[1:6]

[2, 3, 4, 5, 6]



#提取右侧全部

>>> data[3:]

[4, 5, 6, 7, 8, 9, 10]

>>> data[7:10]

[8, 9, 10]



#提取左侧全部

>>> data[:3]

[1, 2, 3]

>>> data[0:3]

[1, 2, 3]



#负索引提取

>>> data[-3:-1]

[8, 9]

>>> data[-3:]

[8, 9, 10]



#设置步长

>>> data[::2]

[1, 3, 5, 7, 9]

>>> data[1::2]

[2, 4, 6, 8, 10]



#步长也可以是负数

>>> data[::-1]

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

>>> data[-1:-8:-1]

[10, 9, 8, 7, 6, 5, 4]

>>> data[8:1:-1]

[9, 8, 7, 6, 5, 4, 3]





2.3 序列相加

  1. 说明:通过加号可以进行序列连接;
  2. 例子:
#序列相加

>>> first=[1,2]

>>> second=[3,4]

>>> first+second

[1, 2, 3, 4]



2.4 乘法

  1. 说明:用一个正整型数乘以序列,可以得到一个新的重复了n次的序列
  2. 注意:
    1. 空列表可以简单地通过两个中括号进行表示([])
    2. None 是Python关键字,表示“什么也没有”
  3. 例子:
#10个python

>>> 'python ' * 10

'python python python python python python python python python python '



#10个空对象

>>> [None] * 10

[None, None, None, None, None, None, None, None, None, None]



#打印盒子

mystr = input("Please input a string:")

strLen = len(mystr)

lineStart = 20

print (" " * lineStart + "+" + "-" * strLen + "+")

print (" " * lineStart + "|" + " " * strLen + "|")

print (" " * lineStart + "|" + mystr + "|")

print (" " * lineStart + "|" + " " * strLen + "|")

print (" " * lineStart + "+" + "-" * strLen + "+")



>>>

Please input a string:My name is Bill Gunn

                    +--------------------+

                    |                    |

                    |My name is Bill Gunn|

                    |                    |

                    +--------------------+







2.5 成员资格

  1. 说明:使用关键字 in 检查值是否在序列中。如果值在序列中返回 “True”,否则返回“False”。值可以是元素也可以是子序列。
  2. 例子:
#检查值是否在序列中

>>> mystr="this is a string"

>>> 'this' in mystr

True



2.6 长度,最大值,最小值

  1. 说明:
    1. len :返回序列包含元素的数量;
    2. min :返回序列中的最小值;
    3. max :返回序列中的最大值;
#min,max和len的用法

>>> data = [12,31,2,1,3,12,3,13,131234,12]

>>> min(data)

1

>>> max(data)

131234

>>> len(data)

10



3 列表:Python的“苦力”

 

3.1 list

  1. 说明:可以将字符串或其他序列转换成列表。
  2. 注意:list是类型,不是函数。
  3. 例子:
>>> list("This is a test string")

['T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', ' ', 's', 't', 'r', 'i', 'n', 'g']



3.2 基本列表操作

  1. 说明:
    1. 元素赋值:使用索引标记来为某个特定的,位置明确的元素赋值;
    2. 元素删除:使用 del 语句;
    3. 分片赋值:
      1. 可以一次为多个元素赋值;
      2. 原片与新片可以长度不同;
      3. 分片赋值可以在指定位置插入新的元素;
  2. 例子:
>>> mylist = [1,2,3,4,5]



#列表元素赋值

#索引必须在列表范围内

>>> mylist[10] = 10

Traceback (most recent call last):

  File "<pyshell#2>", line 1, in <module>

    mylist[10] = 10

IndexError: list assignment index out of range

>>> mylist[0] = 100

>>> mylist

[100, 2, 3, 4, 5]



#删除元素

>>> del(mylist[0])

>>> mylist

[2, 3, 4, 5]

>>>



#分片赋值

>>> mystr = list("Nale Gunn")

>>> mystr[0:4] = list("Bill")

>>> mystr

['B', 'i', 'l', 'l', ' ', 'G', 'u', 'n', 'n']

#分片赋值时,原片与新片长度不同

>>> mystr=list("Bill Gunn")

>>> mystr[-5:] = list("gunn@gmail.com")

>>> mystr

['B', 'i', 'l', 'l', 'g', 'u', 'n', 'n', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm']

>>>

#分片赋值可以在指定位置插入新的元素

>>> mystr=list("Bill Gunn")

>>> mystr[0:0] = list("My name is ")

>>> mystr

['M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'B', 'i', 'l', 'l', ' ', 'G', 'u', 'n', 'n']

>>>



3.3 列表方法

  1. 说明:
    1. append:用于在列表末尾追加一个新的元素;列表调用该方法后,直接被该 方法修改;
    2. count:用于统计某个元素在列表中出现的次数;
    3. extend:在列表的末尾一次性追加另一个列表中的多个元素,该方法 也是直接修改原列表,这也是与列表连接操作的区别;
    4. index:找出某个匹配项第一次出现的索引;
    5. insert:在列表中插入新的对象;
    6. pop:移除列表中的一个值(默认是最后一个),并返回该元素的值;
    7. remove:用于移除某个值在列表中的第一个匹配项;
    8. reverse:将列表中的值反向存放;
    9. sort:对列表进行排序;
    10. sorted内建函数:对序列进行反序,并返回一个列表
  2. 注意:
    1. 列表复制:用分片的方法复制比较有效率。
  3. 例子:
#append

>>> lst = list("Test")

>>> lst.append(list("String"))

>>> lst

['T', 'e', 's', 't', ['S', 't', 'r', 'i', 'n', 'g']]

>>> lst.append("String")

>>> lst

['T', 'e', 's', 't', ['S', 't', 'r', 'i', 'n', 'g'], 'String']

>>> lst=list("Test")

>>> lst.append("!")

>>> lst

['T', 'e', 's', 't', '!']



#count

>>> lst.count('T')

1

>>> lst.count('t')

1



#extend

>>> lst.extend(list("HaHa"))

>>> lst

['T', 'e', 's', 't', '!', 'H', 'a', 'H', 'a']

>>> lst.index('t')

3

>>> 



#pop

>>> lst = [1,2,3]

>>> lst.pop()

3

>>> lst

[1, 2]

>>> lst.pop(0)

1

>>> lst

[2]

>>> 



#pop

>>> lst = [1,2,3]

>>> lst.pop()

3

>>> lst

[1, 2]

>>> lst.pop(0)

1

>>> lst

[2]



#remove

>>> lst=list("12345678")

>>> lst

['1', '2', '3', '4', '5', '6', '7', '8']

#删除不存在的对象会报错

>>> lst.remove(2)

Traceback (most recent call last):

  File "<pyshell#42>", line 1, in <module>

    lst.remove(2)

ValueError: list.remove(x): x not in list

>>> lst.remove('2')

>>> lst

['1', '3', '4', '5', '6', '7', '8']



#reverse

>>> lst.reverse()

>>> lst

['8', '7', '6', '5', '4', '3', '1']



#sort

>>> lst.sort()

>>> lst

['1', '3', '4', '5', '6', '7', '8']

>>> lst.sort(key=len)

>>> lst

['1', '3', '4', '5', '6', '7', '8']

>>> lst = ['asdf','qwersf','aaf','s','afasfd','qre']

>>> lst.sort(key=len)

>>> lst

['s', 'aaf', 'qre', 'asdf', 'qwersf', 'afasfd']

>>> lst.sort(key=len,reverse=True)

>>> lst

['qwersf', 'afasfd', 'asdf', 'aaf', 'qre', 's']

>>> 



#列表复制

>>> x = list('123456')

#下面的复制,只是让y也指向x指向的对象,所以修改x,也会影响y的值

>>> y = x

>>> x.reverse()

>>> y

['6', '5', '4', '3', '2', '1']

#用分片的方法复制,x与y相互独立,修改x,不会影响y

>>> y=x[:]

>>> y.sort()

>>> x

['6', '5', '4', '3', '2', '1']

>>> y

['1', '2', '3', '4', '5', '6']

>>> 



4 元组

 

4.1 元组定义:

  1. 说明:元组不可以修改,一般用圆括号括起来
  2. 例子:
#一般元组

>>> 1,2,3

(1, 2, 3)

>>> (1,2,3)

(1, 2, 3)



#一个元素的元组

>>> (1,)

(1,)

>>> 2,

(2,)



#空元组

>>> ()

()

>>> 



#元组的乘法

>>> 4* (2,)

(2, 2, 2, 2)

>>> 



4.2 tuple函数

  1. 说明:以一个序列为参数,将其转换为元组;
  2. 例子:
>>> tuple("CONSTANT")

('C', 'O', 'N', 'S', 'T', 'A', 'N', 'T')

>>> tuple(list("CONST"))

('C', 'O', 'N', 'S', 'T')

>>> 



4.3 元组的意义:

  1. 元组可以在映射中当作键使用;
  2. 元组作为很多内建函数和方法的返回值存在。
分享到:
评论

相关推荐

    python基础教程-学习笔记.zip

    这份“Python基础教程——学习笔记”涵盖了Python编程的基础知识,旨在帮助初学者快速入门。 1. **变量与数据类型** Python中的变量无需预先声明,可以直接赋值。支持的数据类型包括整型(int)、浮点型(float)...

    Python进阶必备——HiKari为了拿捏Python整理的技术笔记

    本技术笔记专为有一定Python研发经验的开发者设计,旨在通过源码分析揭示Python的基础库和CPython的运行原理。 在第一章“数据对象与语言特性”中,我们将探讨以下关键知识点: 1. **列表(List)与元组(Tuple)...

    Python学习笔记.pdf

    ### Python学习笔记知识点详解 ...通过以上知识点的梳理,我们可以看出,“Python学习笔记.pdf”涵盖了Python语言的基础到高级的多个方面,是一份全面且实用的学习材料,适合初学者到有经验的开发者阅读和参考。

    python学习笔记之列表(list)与元组(tuple)详解

    最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧——我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记忆。 现在读到了...

    Python 学习笔记 第二版.pdf

    "Python学习笔记第二版"是一本专门针对Python编程的教程,旨在帮助读者理解Python的基本编码操作,适用于初学者和有一定基础的学习者进行日常复习。这本书的作者鼓励读者结合其他深入源码分析的书籍,比如《蟒原——...

    python入门笔记-李金(强烈推荐).zip

    **Python入门笔记——李金详解** 本篇笔记是基于作者李金的《python入门笔记-李金(强烈推荐)》的解析,旨在为初学者提供一份详尽的Python语言学习指南。这份笔记采用Jupyter Notebook的形式,使得学习过程更加...

    全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)

    ### 知识点详解 #### 一、Python基础 Python是一种高级编程语言,以...以上就是“全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)”的主要知识点概述。希望对您学习Python及相关的Web开发技术有所帮助。

    《全国计算机等级考试二级教程——Python语言》(年版)学习笔记.zip

    总结,学习《全国计算机等级考试二级教程——Python语言》应注重基础知识的掌握,理解Python语法特性,熟练运用标准库,掌握面向对象编程,了解文件操作和异常处理,实践模块化和函数式编程,以及进行单元测试。...

    curso-python:curso初始python和django

    1. **基础语法**:Python的基础包括变量赋值、数据类型(整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、流程控制(条件语句、循环语句、异常处理)。 2. **函数与模块**:函数是组织代码的基本单位,...

    scrimba-python:带有Scrimba的Python 101 https:scrimba.comlearnpython

    "Python 101"通常指的是Python编程的基础教程,涵盖了初学者需要掌握的核心概念和技术。 在学习这个课程时,你可以期待涵盖以下Python基础知识: 1. **变量与数据类型**:Python中的基本数据类型包括整型(int)、...

    belajar-basis-data

    标题“belajar-basis-data”暗示了这是一个关于学习基础数据库知识的资料集合,可能是课程材料、教程或笔记。由Aryajaya Alamsyah,S.Kom创建,我们可以期待这是一份由专业人士编写的教育资源,可能包含数据库的基本...

Global site tag (gtag.js) - Google Analytics