Python3学习笔记之列表方法示例详解
|
前言 本文主要给大家介绍了关于Python3列表方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 1 使用[]或者list()创建列表 user = [] user = list() 2 使用list() 可以将其他类型转换成列表
# 将字符串转成列表
>>> list('abcde')
['a','b','c','d','e']
# 将元祖转成列表
>>> list(('a','c'))
['a','c']
3 使用[offset]获取元素 或 修改元素 >>> users = ['a','e'] # 可以使用整数来获取某个元素 >>> users[0] 'a' # 可以使用负整数来表示从尾部获取某个元素 >>> users[-1] 'e' # 数组越界会报错 >>> users[100] Traceback (most recent call last): File "<stdin>",line 1,in <module> IndexError: list index out of range >>> users[-100] Traceback (most recent call last): File "<stdin>",in <module> IndexError: list index out of range # 修改某个元素 >>> users[0] = 'wdd' >>> users ['wdd','e'] >>> 4 列表切片与提取元素 列表的切片或者提取之后仍然是一个列表 形式如: >>> users ['wdd','e'] # 正常截取 注意这里并不会截取到users[2] >>> users[0:2] ['wdd','b'] # 也可从尾部截取 >>> users[0:-2] ['wdd','c'] # 这样可以获取所有的元素 >>> users[:] ['wdd','e'] # 也可以加上步长参数 >>> users[0:4:2] ['wdd','c'] # 也可以通过这种方式去将列表取反 >>> users[::-1] ['e','wdd'] # 注意切片时,偏移量可以越界,越界之后不会报错,仍然按照界限来处理 例如开始偏移量如果小于0,那么仍然会按照0去计算。 >>> users ['wdd','e'] >>> users[-100:3] ['wdd','c'] >>> users[-100:100] ['wdd','e'] >>> 5 使用append()添加元素至尾部 形式如:
>>> users
['wdd','e']
>>> users.append('ddw')
>>> users
['wdd','e','ddw']
6 使用extend()或+=合并列表 形式如: 这两个方法都会直接修改原列表 >>> users ['wdd','ddw'] >>> names ['heihei','haha'] >>> users.extend(names) >>> users ['wdd','ddw','heihei','haha'] >>> users += names >>> users ['wdd','haha','haha'] 7 使用insert()在指定位置插入元素 形式如: insert也不存在越界的问题,偏移量正负都行,越界之后会自动伸缩到界限之内,并不会报错 >>> users ['wdd','haha'] >>> users.insert(0,'xiaoxiao') >>> users ['xiaoxiao','wdd','haha'] >>> users.insert(-1,'-xiaoxiao') >>> users ['xiaoxiao','-xiaoxiao','haha'] # 下面-100肯定越界了 >>> users.insert(-100,'-xiaoxiao') >>> users ['-xiaoxiao','xiaoxiao','haha'] # 下面100也是越界了 >>> users.insert(100,'-xiaoxiao'] 8 使用del删除某个元素 形式如: del是python的语句,而不是列表的方法,del删除不存在的元素时,也会提示越界 >>> users ['-xiaoxiao','-xiaoxiao'] >>> del users[0] >>> users ['xiaoxiao','-xiaoxiao'] >>> del users[100] Traceback (most recent call last): File "<stdin>",in <module> IndexError: list assignment index out of range >>> del users[-100] Traceback (most recent call last): File "<stdin>",in <module> IndexError: list assignment index out of range 9 使用remove删除具有指定值的元素 形式如:
>>> users
['xiaoxiao','-xiaoxiao']
# 删除指定值'c'
>>> users.remove('c')
>>> users
['xiaoxiao','-xiaoxiao']
# 删除不存在的值会报错
>>> users.remove('alsdkfjalsdf')
Traceback (most recent call last):
File "<stdin>",in <module>
ValueError: list.remove(x): x not in list
# 如果该值存在多个,那么只能删除到第一个
>>> users.remove('haha')
>>> users
['xiaoxiao','-xiaoxiao']
10 使用pop()方式返回某个元素后,并在数组里删除它 形式如: >>> users ['xiaoxiao','-xiaoxiao'] # 删除最后的元素 >>> users.pop() '-xiaoxiao' >>> users ['xiaoxiao','haha'] # 如果列表本身就是空的,那么pop时会报错 >>> user.pop(0) Traceback (most recent call last): File "<stdin>",in <module> IndexError: pop from empty list >>> users.pop(0) 'xiaoxiao' >>> users ['wdd','haha'] # 越界时也会报错 >>> users.pop(100) Traceback (most recent call last): File "<stdin>",in <module> IndexError: pop index out of range 11 使用index()查询具有特定值的元素位置 形式如:
# index只会返回第一遇到该值得位置
>>> users
['wdd','haha']
>>> users.index('heihei')
5
# 如果该值不存在,也会报错
>>> users.index('laksdf')
Traceback (most recent call last):
File "<stdin>",in <module>
ValueError: 'laksdf' is not in list
12 使用in判断值是否存在列表 形式如: >>> users ['wdd','haha'] >>> 'wdd' in users True 13 使用count()记录特定值出现的次数 形式如:
>>> users
['wdd','haha']
>>> users.count('heihei')
2
>>> users.count('h')
0
14 使用join()将列表转为字符串 形式如: >>> users ['wdd','haha'] >>> ','.join(users) 'wdd,b,d,e,ddw,heihei,-xiaoxiao,haha' >>> user [] >>> ','.join(user) '' 15 使用sort()重新排列列表元素 形式如:
>>> users
['wdd','haha']
# 默认是升序排序
>>> users.sort()
>>> users
['-xiaoxiao','wdd']
# 加入reverse=True,可以降序排序
>>> users.sort(reverse=True)
>>> users
['wdd','-xiaoxiao']
# 通过匿名函数,传入函数进行自定义排序
>>> students
[{'name': 'wdd','age': 343},{'name': 'ddw','age': 43},{'name': 'jik','age': 90}]
>>> students.sort(key=lambda item: item['age'])
>>> students
[{'name': 'ddw','age': 90},{'name': 'wdd','age': 343}]
>>> students.sort(key=lambda item: item['age'],reverse=True)
>>> students
[{'name': 'wdd','age': 43}]
>>>
16 使用reverse()将列表翻转 形式如: >>> users ['wdd','-xiaoxiao'] >>> users.reverse() >>> users ['-xiaoxiao','wdd'] 17 使用copy()复制列表 形式如:
>>> users ['-xiaoxiao','wdd'] >>> users2 = users.copy() >>> users2 ['-xiaoxiao','wdd'] >>> 18 使用clear()清空列表 形式如: >>> users2 ['-xiaoxiao','wdd'] >>> users2.clear() >>> users2 [] 19 使用len()获取列表长度 形式如: >>> users ['-xiaoxiao','wdd'] >>> len(users) 9 20 关于列表越界的深入思考 写了这些方法后,我有一些疑问,为什么有些操作会提示越界,有些则不会呢? 会提示偏移量越界的操作有
如果偏移量越界,这些方法会报错的。我的个人理解是: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
