PythonNewHere--Python列表与元组基本函数与操作

本文介绍了Python中列表的基本操作,包括创建、修改、删除等,并详细解释了如何利用分片、append、extend等方法来实现这些操作。此外还介绍了列表方法如count、sort的功能及用法。

===============================================

列表的基本操作

本章的代码:https://github.com/Fu4ng/PythonNewHere/blob/master/L02.py

list函数

因为字符串不能像列表一样被改变,所以有时根据字符串创建列表会很有用。list函数就可以实现这个功能。
把一个序列作为参数,转换成列表

list('hello')
['h','e','l','l','o']

列表可以使用所有使用于序列的基本操作,例如索引,分片,连接和乘法。有趣的是列表是可以修改的。

1.改变列表:元素赋值

x = [1,1,1]
x[1] = 2
print(x)
[1,2,1]

2.删除元素

使用del语句来说实现

x = [1,2,6,3,4,5]
del x[2]
print(x)
[1,2,3,4,5]

删除的6是彻底消失的,而且列表的长度也从6变成5

3.分片赋值

name = list('perl')
name[2:] = list('ython')
print(name)
['p','y','t','h','o','n']

分片赋值语句在不需要替换任何原有元素的情况下插入新的元素
所以,用分片赋值的办法来删除元素 可是可信的

x = [1,3,3,3,2]
x[1:4] = []

===========================================

列表方法

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

对象.方法(参数)

list函数

因为字符串不能像列表一样被改变,所以有时根据字符串创建列表会很有用。list函数就可以实现这个功能。

list('hello')
['h','e','l','l','o']
# --用分片赋值删除元素
x = [1, 3, 3, 3, 2]
x[1:4] = []
print(x)

# # count函数
x = [[1, 2], 1, [1, 2]]
print(x.count([1, 2]))
print(x.count(1))

# append 与 extend
a = [1, 2]
b = [4, 5]
a.append(3)
print(a)
a.extend(b)
print(a)

因为append和extend这两个函数没有返回值,所以不能print(a.append)这样会打印出一个None值

# insert
x=[1,2,3,5]
x.insert(3,"four")
print(x)

# pop 与 remove
#pop返回被剔除的值,remove是一个没有返回值的原位置改变方法
x = [1, 2, 5, 3, 4]
print(x.pop(2))
print(x.remove(3))  #打印一个none值
print(x)

sort函数

x=[4,2,3,0]
x.sort()
print(x)
[0, 2, 3, 4]

如果我们想保留原列表,建立一个排序好的副本,像下面这样“但当然的操作是错误的,因为sort函数没有返回值”

y = x.sort()  #错错错

你可以这样

x = [4, 2, 3, 0]
y = x[:]   #不要直接 y = x 这样的话就让x和y指向同一个地址
y.sort()
print(y)

或者使用sorted,这是一个返回排序完毕的列表的函数

y = sorted(x)

高级排序

python 3之后已经取消cmp了,但是加了一个functools.cmp_to_key函数去转换,https://docs.python.org/3/library/functools.html#functools.cmp_to_key

如果想降序排列的话可以

x.sort(reserve =True)

元组:不可变序列

元组和列表一样,是一种序列,唯一不同的是元组不能修改,创建元组的语法很简单,如果你使用逗号隔开一些值,那么你就创建了一个元组

创建一个只有一个元素的元组

x = (42,)

tuple函数

x = tuple([1,2,3])
print(x)

将序列做为参数,并把他转换为元组,和list差不多。

只要不修改元组的值,操作都和列表基本一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值