Python_序列

1)列表 


# 1) 基础操作
>>> a = [] # 创建一个列表
>>> a = list(range(1, 10)) # 创建列表的方法之一
'''list(iterable)可生成一个列表'''
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[0]
1
>>> a[-1] # 索引可以为负数,a[-1]就是末尾
9
>>> 1 in a
True
>>> 1 not in a
False
>>> 0 in a
False
>>> 0 not in a
True
# 实际中一般与if连用,if x in/not in a
# 列表可比大小,包含多个元素时默认从第一个开始比较,字符串同理
>>> a = [1, 2, 3]
>>> b = [1, 3, 2]
>>> a > b
False
# 列表之间可以用'+'相加,列表可以用'*'自我复制
>>> a = [1]
>>> b = [2]
>>> a + b
[1, 2]
>>> a*3
[1, 1, 1]

>>> len(a) # 获取列表长度
9
>>> sum(a) # 对列表元素求和
45

# range(start=0, stop, step=1)  左闭右开
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> tuple(range(1, 10))
(1, 2, 3, 4, 5, 6, 7, 8, 9)
'''当step > 0时,start < stop
当step < 0时,start > stop'''
>>> list(range(1, 6, 2))
[1, 3, 5]
>>> list(range(1, 6, -1))
[]
>>> list(range(6, 1))
[]
>>> list(range(6, 1, -1))
[6, 5, 4, 3, 2]


# append(x)  将x添加到列表末尾,相当于a[len(a):] = [x]
>>> a.append(1)
>>> a
[1]
>>> a.append(2) 
>>> a
[1, 2]

# extend(iterable)  将可迭代对象添加到列表末尾,相当于a[len(a):] = [iterable]
>>> a.extend((1,2,3)) 
>>> a
[1, 2, 1, 2, 3]
>>> a.extend([1,1])
>>> a
[1, 2, 1, 2, 3, 1, 1]
>>> a.extend(range(3))
>>> a
[1, 2, 1, 2, 3, 1, 1, 0, 1, 2]
>>> a.extend('123')
>>> a
[1, 2, 1, 2, 3, 1, 1, 0, 1, 2, '1', '2', '3']

# insert(i, x)  将x插入到列表的第i个位置,位置从0开始算
>>> a.insert(3, 4) 
>>> a
[1, 2, 1, 4, 2, 3]
# insert(0, x)  相当于把x放到列表的首位
>>> a.insert(0, 0)
# insert(len(a), x)  相当于把x放到列表的末位,等同于a.append()
>>> a.insert(len(a), 5)
>>> a
[0, 1, 2, 1, 4, 2, 3, 5]
# insert(i, x)  i可以为负数,表示与列表末尾的相对位置
>>> a.insert(-1, 6) # i为-1时插入的位置是倒数第二个
>>> a
[0, 1, 2, 1, 4, 2, 3, 6, 5]

# remove(x)  删除列表中第一个x元素
>>> a.remove(0)
>>> a
[1, 2, 1, 4, 2, 3, 6, 5]
>>> a.remove(1)
>>> a
[2, 1, 4, 2, 3, 6, 5]
>>> a.remove(0) # 如果列表中不存在x元素,则抛出ValueError异常
Traceback (most recent call last):
  File "<pyshell#50>", line 1, in <module>
    a.remove(0)
ValueError: list.remove(x): x not in list

# pop(i)  删除列表中第i个元素并将其返回
>>> a.pop(2)
4
>>> a
[2, 1, 2, 3, 6, 5]
>>> a.pop() # 没有指定位置参数时,将删除最后一个元素并返回
5
>>> a
[2, 1, 2, 3, 6]
>>> a.pop(-1) # 相当于删除最后一个并返回
6
>>> a
[2, 1, 2, 3]
>>> a.pop(-2) # 相当于删除倒数第二个并返回
2
>>> a
[2, 1, 3]

# clear()  删除列表中的所有元素,注意:不是删除列表
>>> a = [1]
>>> a.clear()
>>> a
[]
>>> a = [1]
>>> del a[:] # 等同于clear()
>>> a
[]
>>> del a # 删掉整个a列表
>>> a
Traceback (most recent call last):
  File "<pyshell#77>", line 1, in <module>
    a
NameError: name 'a' is not defined

# index(x, start, end)  返回x位于列表的索引值
>>> a
[1, 2, 3, 4, 5, 6]
>>> a.index(3) # start和end默认为列表首尾
2
>>> a.index(4, 0, 5)
3
>>> a.index(1, 1, 5) # 如果找不到就抛出异常
Traceback (most recent call last):
  File "<pyshell#82>", line 1, in <module>
    a.index(1, 1, 5)
ValueError: 1 is not in list
>>> a.append(1)
>>> a
[1, 2, 3, 4, 5, 6, 1]
>>> a.index(1) # 有多个值时返回第一个位置
0

# count(x)  返回x在列表中出现的次数
>>> a
[1, 2, 3, 1, 4, 5, 6, 1]
>>> a.count(1)
3

''' sort(key=None, reverse=False)  排序,key参数指定一个用于比较的函数,
reverse参数用于指定排序参数是否反转,sort默认从小到大排序'''
>>> a = [7,3,0,6,7,1,2,0,4,5]
>>> a.sort()
>>> a
[0, 0, 1, 2, 3, 4, 5, 6, 7, 7]
>>> a.sort(reverse=True)
>>> a
[7, 7, 6, 5, 4, 3, 2, 1, 0, 0]

# reverse()  原地反转列表中的元素
>>> a = [1,2,3]
>>> a.reverse()
>>> a
[3, 2, 1]

# cpoy()  返回列表的一个浅拷贝,相当于a[:]
>>> a
['1', '2', '3']
>>> b = a.copy()
>>> b
['1', '2', '3']


# 2) 切片操作
'''a[start=0:stop=len(a):step=1] 左闭右开
以下示例均以a=list(range(0,10))为例'''
# 1.切取单个值
>>> a[0]
0
>>> a[-1]
9
>>> a[-4]
6
# 2.切取完整对象
>>> a[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[:-1] # 完整的应该是a[0:-1:1] index = -1就相当于index = len(a)-1
[0, 1, 2, 3, 4, 5, 6, 7, 8]
# 3.start和stop都为正索引的情况
>>> a[1:5]
[1, 2, 3, 4]
>>> a[1:5:-1]
[]
>>> a[6:1]
[]
>>> a[6:1:-1]
[6, 5, 4, 3, 2]
>>> a[:6]
[0, 1, 2, 3, 4, 5]
>>> a[:6:-1] # 好像step优先级更高
[9, 8, 7]
>>> a[6:]
[6, 7, 8, 9]
>>> a[6::-1] # 佐证了step的优先级最高
[6, 5, 4, 3, 2, 1, 0]
# 4.start和stop都为负索引的情况



count = len(list(x for x in score if x >= 60))  # 通过列表推导式得到大于60分的列表然后用len()函数得到数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值