Python:list

本文详细介绍Python列表的基础操作,包括创建、添加、获取、删除元素,列表切片、常用操作符及方法,拷贝技巧,以及如何使用列表推导式动态创建列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建列表

普通列表:member = ['a', 'b', 'c']

混合列表:members = ['a' , 1, [1,2,3]]

空列表 ampty = []

二、向列表添加元素 

member.append('xxxx')		#对象的函数叫方法;向尾部条件;只能添加一个元素
member.extend(['a', 'b'])	#用一个列表扩展另一个列表;只有一个参数	+号也可以
member.insert(1, 'xx')		#在指定位置插入元素

三、从列表中获取元素

使用member[1]

颠换列表内的两个值,可以使用中间值temp

切片,见五中代码

四、从列表删除元素

member.remove('a')	#从0 index开始删除第一个匹配的;当不存在时,会抛出ValleError
del member[2]
del member         #删掉整个列表
member.pop()	#从尾部弹栈;返回弹出的元素
member.pop(1)	#弹出index为1的元素

五、列表切片

得到的是拷贝;包含前,不包含后;尾为len(list)

前省略为0,后省略为尾;前后都省略是列表的拷贝,即member2 = member[:]

第三个可以是步长,-1为倒序

>>> a = [1,2,3,4]
>>> a[1:2]
[2]
>>> a[1:2] = 'a'
>>> a
[1, 'a', 3, 4]
>>> a[:] = 'xx'
>>> a
['x', 'x']
>>> a = [1,2,3,4]
>>> b = a[1:2]		有赋值号时才是拷贝!,以上不是拷贝,是通过切片获取元素并修改
>>> b
[2]
>>> b[0] = 'x'
>>> a
[1, 2, 3, 4]
>>> 

六、列表的常用操作符

比较操作符、逻辑操作符:

list1 > list2    默认从第0个元素开始比较,有结果就不在比较后边的;字符串比较ascii码

连接操作符:

list1 + list2    相当于extend方法

重复操作符:

list1 * 3     相当于list1 + list1 + list1

list1 *= 3

成员关系操作符:

in     not in

list = [123, ['liyi', 'b'], 345]
'liyi' in list    #False
'liyi' in list[1]     #True
list[1][0]    #返回‘liyi’

七、列表内的方法

dir(list)	显示list的所有方法等
list3.reverse()		#倒序list;原地修改;
list3.sort()		#按照指定的方法进行排序,就地修改;
list.sort(func, key, reverse)	#func是指定排序的算法;key是跟算法搭配的关键字;reverse倒序  list3.sort(reverse=True)
list1.count()		#计算参数在列表中出现的次数
Help on built-in function index:
index(...) method of builtins.list instance
    L.index(value, [start, [stop]]) -> integer -- return first index of value.
    Raises ValueError if the value is not present.

clear() 方法用于清空列表的元素,但要注意,清空完后列表仍然还在哦,只是变成一个空列表。

1. >>> list2.clear()
2. >>> list2
3. []

八、列表的拷贝

list2 = list1[:]

list2 = list1不是拷贝,是同时指向

copy() 方法跟使用切片拷贝是一样的:

1. >>> list2 = list1.copy()
2. >>> list2
3. [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]

九、显示index的两个方法

1.方法一:
2.count = 0
3.length = len(member)
4.while count < length:
5.    print(member[count], member[count+1])
6.    count += 2
7.
8.方法二:    
9.    
10.for each in range(len(member)):
11.    if each%2 == 0:
12.        print(member[each], member[each+1])

十、列表也是指向那种变量

1.>>> old = [1, 2, 3, 4, 5]
2.>>> new = old
3.>>> old = [6]
4.>>> print(new)
打印[1, 2, 3, 4, 5],把old做了个重指向

十一、列表推导式List comprehensions(列表解析式)

灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:

[有关A的表达式 for A in B]

1. >>> [i*i for i in range(10)]
2. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]
等价于
1. list1 = []
2. for x in ragne(10):
3.     for y in range(10):
4.         if x%2 == 0:
5.             if y%2 != 0:
6.                 list1.append((x, y))









                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值