python学习笔记(20) 列表和序列

1、内建函数 len,min,max

len返回元素数量,或者字符串长度

min返回最小值

max返回最大值

numbers = [100,1,-10,255]
>>> max(numbers)
255
>>> min(numbers)
-10
>>> max(100,5,886)
886
>>> min(20,-7,-233,156)
-233

2、列表是python中的苦力,可修改

list把元素转换成列表

>>> list("hello")
['h', 'e', 'l', 'l', 'o']
a = list("hello")
>>> "".join(a)
'hello'

为元素赋值

>>> a = [2,3,1]
>>> a[0]=5
>>> a
[5, 3, 1]


删除元素

>>> a = [-1, 3, 'aa', 85] # 定义一个list
>>> a
[-1, 3, 'aa', 85]
>>> del a[0] #
删除第0个元素
>>> a
[3, 'aa', 85]
>>> del a[2:4] #
删除从第2个元素开始,到第4个为止的元素。包括头不包括尾
>>> a
[3, 'aa']
>>> del a #
删除整个list
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

分片赋值 [ x : y ] x,y为序号,留空则表示直到最前 / 最后

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

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

分片赋值可以提取元素,为多个元素赋值,插入元素,删除元素


3、列表方法 的格式为: 对象.方法(参数)   对象放最前,中间用一个点号隔开,后面接方法,再接一个括号,括号里写参数

对象可以是数字,列表,字符串或者其他类型的对象

append 在列表末尾追加新对象

append添加元素
(入栈)
向列表的尾部添加一个新的元素。只接受一个参数 append()用法示例:
 mylist = [1,2,0,'abc']
 mylist.append(4)
 mylist
 [1, 2, 0, 'abc', 4]

count 统计某个元素在列表里出现的次数

count() 返回子串在指定范围内出现的次数
str.count(sub, start=0,end=len(string))
str = "this is string example....wow!!!"
sub = "i"
print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
sub = "wow"
print "str.count(sub) : ", str.count(sub)
结果显示
str.count(sub, 4, 40) : 2
str.count(sub, 4, 40) : 1

extend 在列表末尾一次性追加另一个序列的多个值

extend添加元素只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中 extend()用法示例:
 mylist
 [1, 2, 0, 'abc', 4, 'haha']
 mylist.extend(['lulu'])
 mylist
 [1, 2, 0, 'abc', 4, 'haha', 'lulu']

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

index() index()返回子串在指定范围内首次出现的位置,未查到抛出异常
str.index(str, beg=0end=len(string))
str = "this is string example....wow!!!"
str = "exam"
print str.index(str)
print str.index(str, 10)
print str.index(str, 40)
显示结果
15
15
Traceback (most recent call last): File "test.py", line 8, in print str.index(str, 40); ValueError: substring not found

insert 将对象插入到列表     insert(编号,替换的内容)

insert插入将对象插入到列表中>>> a = [1,2,3,4,5]
>>> a.insert(0,6)
>>> a
[6, 1, 2, 3, 4, 5]

pop 移除列表的最后一个元素,并返回该元素的值    pop()括号里的值默认为列表最后一个,可以自己设定,比如pop(0)则删除列表第一个元素

pop()列表删除,移除字典数据
(出栈)
删除指定给定键所对应的值,返回这个值并从字典中把它移除。
一般删除对象方法会直接将元素删除,而
pop()方法在删除指定对象时,会返回要删除元素的值。可以理解为一个提示作用,提示你删除的是哪一个元素.
注意字典
pop()方法与列表pop()方法作用完全不同。
字典pop()删除:
>>> x = {'a':1,'b':2}
>>> x.pop('a')
1
>>> x
{'b': 2}
列表pop()删除:
list.pop(index=-1)
pop()括号内参数是,要删除对象的索引。如果为空则默认为-1最后一项
>>> x = [1,2,3,4]
>>> x.pop()
4
>>>x
[1,2,3]

出栈为append () ,入栈为pop(),既 后进先出

如果要先进先出,可以insert(0,元素值)来代替append(),用pop(0)来代替pop()

最好的方案是用collection模块里的deque对象


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

a = ['g', 'o', 'o', 'd', 'g', 'o', 'b']
>>> a.remove("o")
>>> a
['g', 'o', 'd', 'g', 'o', 'b']

reverse 倒序排列 

reverse倒序该方法实际改变了列表,如果想只返回一个倒序的列表但是不改变实际列表,可以用reversed>>> a = [1,2,3,4,5]
>>> a.reverse()
>>> a
[5, 4, 3, 2, 1]
reversed倒序迭代返回一个迭代的倒序列表,但不改变实际的列表>>> a = [1,2,3,4,5]
>>> list(reversed(a))
[5, 4, 3, 2, 1]
>>> a
[1, 2, 3, 4, 5]

sort 正序排列

sort排序命令sort(),括号里可以使用两个参数进行详细的设定,key和reverse
key使用函数,reverse则为布尔值指明列表是否要反向排序

对列表元素进行升序排列,实际上改变列表的排序,如果只想返回一个升序的列表,但是不改变原列表,可以用sorted
>>> a = [5,2,3,1,4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
>>> a.sort(reverse=True)
>>> a
[5, 4, 3, 2, 1]
>>> b = ["abc","ab","abcde","abcd"]
>>> b.sort(key=len)  #key使用len函数来为列表b按长度排序
>>> b
['ab', 'abc', 'abcd', 'abcde']
sorted()迭代升序返回一个迭代的升序列表,但不改变原列表的排序>>> a = [5,2,3,1,4]
>>> sorted(a)
[1, 2, 3, 4, 5]
>>> a
[5, 2, 3, 1, 4]


4、元组,不能修改,用逗号分隔值,即为元组

如(1,3)

或者 () 元组为空    

或者(1,)只有一个值的元组


tuple() 把括号里的东西变成元组

>>> tuple("hello")
('h', 'e', 'l', 'l', 'o')

元组的作用:

①映射中当成键使用 

②作为内建函数和方法的返回值存在



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值