列表与元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表与元组相关的知识,希望对你有一定的参考价值。

一、序列概览

在Python中,最基本的数据结构是序列:
序列中每个元素被分配一个序号——即元素的位置,也称为索引,索引以0开始。

Python中有六种内建的序列:

  • 列表
  • 元组
  • 字符串
  • Unicode字符串
  • buffer对象
  • xrange对象

本次的讨论的列表和元组,主要区别在与——列表可以修改,元组不可修改

 


 

二、通用序列操作
所有的序列都可以进行某些特定的操作,这些操作包括:

  • 索引
  • 分片
  • 检查成员

除此之外,Python还有 迭代 、 计算序列长度 、找出最大元素 和 最小元素 等内建函数


**索引:通过元素的序号获取元素

>>>greeting = Hello
>>>greeting[0]
H
>>>greeting[-1]
o
>>>"Hello"[1]
e

应用索引时注意以下几点:
首位元素的序号为0
默认从左到右计数
使用负数时,从最后一个元素开始计数,序号为-1
字符串字面值能够直接索引,可以不需要变量引用

**分片:通过元素的序号的范围访问一定范围内元素

>>>numbers = [1,2,3,4,5,6,7,8,9,10]
>>>numbers[3:6]
[4,5,6]
>>>numbers[0:1]
[1]
>>>numbers[7:10]
[8,9,10]
>>>numbers[-3:-1]
[8,9]
>>>numbers[-3:0]
[]
>>>numbers[-3:]
[8,9,10]
>>>numbers[:3]
[1,2,3]
>>>numbers[:]
[1,2,3,4,5,6,7,8,9,10]

应用分片时注意以下几点:
通过冒号隔开两个索引实现
范围以第一个索引的元素开始,以 第二个索引的元素前一位元素 结束
第一个索引的位置必须在第二个索引的位置之前

另外,在正常的分片的同时,还有步长的概念,即可以设置间隔的元素个数,默认设置为1

>>>numbers=[1,2,3,4,5,6,7,8,9,10]
>>>numbers=[0:10:1]
[1,2,3,4,5,6,7,8,9,10]
>>>numbers[0:10:2]
[1,3,5,7,9]
>>>numbers[::4]
[1,5,9]

设置步长时,注意以下几点:
步长不能设置为0
步长可以为负数,此时分片从右往左取元素


**序列相加:通过 加运算符 “+” 进行序列连接操作

>>>[1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>>"Hello, " + "world."
"Hello, world."
>>>[1,2,3]+world(此时系统会提示错误,列表与字符串不能连接在一起)

**乘法:原来的序列重复

>>>python * 5
pythonpythonpythonpythonpython
>>>[42]*10
[42,42,42,42,42,42,42,42,42,42]

**None、空列表和初始化
空列表可以简单的表示为:[],但是如果想创建一个占十个元素空间,却不包括任何有用元素的空列表,则需要使用None,None代表什么都没有

>>>[]*10
[]
>>>[None]*10
[None,None,None,None,None,None,None,None,None,None]

**成员资格:检查一个值是否在序列中,使用in运算

>>> w in rw
True

**长度、最小值和最大值
len:返回序列中元素的数量
min:返回序列中的最小元素
max:返回序列中的最大元素


 

三、列表

list函数:将字符串转换为列表

>>>list("hello")
[h,e,l,l,o]

基本操作:
元素赋值

>>>x= [1,1,1]
>>>x[1]=2
>>>x
[1,2,1]

删除元素

>>>names = [Alice,Beth,Cecil,Dee-Dee,Earl]
>>>del names[2]
>>>names
[Alice,Beth,Dee-Dee,Earl]

分片赋值

>>>name = list(Perl)
>>>name
[P,e,r,l]
>>>name[2:] = list(ar)
>>>name
[P,e,a,r]


使用列表分片赋值注意以下几点:
可以使用与原序列不等长的序列将分片替换

>>>name = list(Perl)
>>>name[1:] = list(ython)
>>>name
Python

分片赋值可以在不需要替换任何元素的情况下,插入新的元素

>>>numbers = [1,5]
>>>numbers[1:1] = [2,3,4]
>>>numbers
[1,2,3,4,5]
>>>numbers[1:4] = []
>>>numbers
[1,5]

 

列表的方法:
append 在列表末尾追加新的对象
count 统计某个元素在列表中出现的次数
extend 在列表的末尾一次性追加另一个序列的多个值
index 从列表中找出某个值第一个匹配项的位置
insert 将对象插入到列表中
pop 移除列表中的一个元素(默认是最后一个),并返回该值
remove 移除列表中某个值的第一个匹配项
reverse 将列表中的元素反向存放
sort 队列表进行排序
高级排序

 

元组的方法:
tuple 以一个序列为参数将其转换为元组:

以上是关于列表与元组的主要内容,如果未能解决你的问题,请参考以下文章

python列表与元组的用法

python学习笔记之列表与元组

列表与元组——自兴人工智能

列表与元组

Python3.7之列表与元组

零基础学python-2.7 列表与元组