《Python基础教程》(二)列表和元组

容器
1.序列(列表和元组)
2.映射(字典)
3.集合

通用序列(列表元组)操作

索引

序列中所有的元素都是有编号的—从0开始递增

字符串是一个有字符组成的序列

Python可以通过-1索引最后一个元素

>>>a = 'Hello'
>>>a[-1]
o


分片

访问一定范围内的元素

>>>a = [1,2,3,4,5,6]
>>>a[1:3]
[2,3]

同样可负数代表倒数

>>>a[-3:-1]
[4,5]
>>>a[-3:0]
[]

不写数字代表索引到头~

>>>a[-3:]
[4,5,6]
>>>a[:3]
[1,2,3]
>>>a[:]
[1,2,3,4,5,6]

还有最后一个是步长,步长也可以是负数

>>>a[::4]
[1,5]
>>>a[4:2:-1]
[5,4]


序列相加

序列加法==序列的连接

>>>[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
>>>'Hello,'+'world!'
'Hello,world!'
>>>[1,2,3]+'world!'
TypeError: can only concatenate list (not "str") to list
列表和字符串无法连接,两种相同类型的序列才能进行连接


乘法

就是序列重复连接

>>>'python'*5
'pythonpythonpythonpythonpython'

None、空列表和初始化
None是一个Python的内键值,“这里什么也没有”
>>>a = [None]*5
>>>a
[None, None, None, None, None]

成员资格

检查一个值是否在序列中,in

>>>a = [1,2,3]
>>>1 in a
True

字符串也可以哦

>>>a = 'asdfg'
>>>'a' in a
True
>>>'asd' in a
True


长度、最小值和最大值

就是三个函数len(),min(),max()


列表

list函数

>>>list('Hello')
['H', 'e', 'l', 'l', 'o']


基本的列表操作

元素赋值

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

删除元素

del()函数~

分片赋值

分片是十分强大的~不信你看看~~

  1. 批量赋值

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

  2. 插入元素

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

  3. 删除元素

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


列表的方法

方法是一个与某些对象有紧密联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象,一般来说,方法可以这样调用:
                    对象.方法(参数)
append

在列表末尾追加新的对象

>>>a = [1,2,3]
>>>a.append(4)
>>>a
[1,2,3,4,]

count

统计列表中某个元素的出现次数

>>>a = [1,2,3,1,2,1,1]
>>>a.count(1)
4

extend

在列表末尾一次性追加多个值,用列表扩展列表

>>>a = [1,2,3]
>>>b = [4,5,6]
>>>a.extend(b)
>>>a
[1,2,3,4,5,6]

以上操作等价于

a = a+b

效率比extend低。
还可以这样子

a[len(a):]=b

index

从列表中找出某个值第一个匹配项的索引位置

>>>a = [1,2,3,1,2,1,1]
>>>a.index(2)
1

insert

将对象插入到列表中

>>>a = [1,2,3,4,5]
>>>a.insert(2,'s')
>>>a
[1, 2, 's', 3, 4, 5]

以上操作等价于

>>>a[2:2]=['s']
>>>a[2:2]='s'

pop

移除列表一个元素(默认最后一个),并且返回该元素的值

>>>a = [1,2,3,4,5]
>>>a.pop()
5
>>>a
[1,2,3,4]
>>>a.pop(0)
1
>>>a
[2, 3, 4]

remove

移除列表中某个值的第一个匹配项

>>>a = [1,2,3,2,3]
>>>a.remove(2)
>>>a
[1,3,2,3]

reverse

将列表中的元素反向存放

>>>a = [1,2,3]
>>>a.reverse()
>>>a
[3,2,1]

等价于,reversed()返回的是一个迭代器

>>>list(reversed(a))

sort

在原位置对列表进行排序,改变原来的列表

>>>a = [8,2,3,2,3]
>>>a.sort()
>>>a
[2,2,3,3,8]

这里需要注意,这个方法是不会返回值的,想要保留原list次序,可以复制个list副本。
这里要注意复制的方法x=y是不行的,这就是指向了同一个位置了。要x=y[:]才可以。
还可以直接用sorted()函数

高级排序

特定方式排序(默认是an默认排序规则升序排序)
定义自己的compare(x,y)函数。在x<y返回负数,x>y返回整数,x==y返回0。

>>>a = [8,2,3,2,3]
>>>cmp(42,32)
1
>>>cmp(12,32)
-1
>>>a.sort(cmp)
>>>a
[2,2,3,3,8]

sort还有另外两个参数,key也是函数,为每个元素创建一个键,根据键排序。
reverse是简单布尔值,决定是否进行反向排序


元组:不可变序列

元组与列表一样,只是元组不能修改,所以元组是hashable的,字符串也是不可修改的

>>>1,2,3
(1,2,3)
>>>(1,2,3)
(1,2,3)

一个值的元组

>>>42,
(42,)

tuple函数

与list基本一样


元组的基本操作

就是创建和访问


元组的用处

  • 元组可以在映射(和集合成员)中当做键,列表不行
  • 元组是很多内建函数和方法的返回值

本章新函数

函数描述
cmp(x,y)比较两个值
len(seq)返回序列的长度
list(seq)把序列转换成列表
max(args)返回序列或者参数集合中的最大值
min(args)返回序列或者参数集合的最小值
reversed(seq)对序列进行反向迭代
sorted(seq)返回已排序的包含所有seq所有元素的列表
tuple(seq)把序列转换成元组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值