【277】◀▶ Python 列表/元组/字典说明
目录:
列表截取很灵活,下面通过例子说明:
还可以通过 a[0:8:2] 来截取
1 2 3 4 5 6 7 8 9 10 | >>> a [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] >>> a[ - 1 ] # 最后一个元素 9 >>> a[ - 2 ] # 倒数第二个 8 >>> a[: 3 ] # 第一个到索引为(3-1)的,不包括3 [ 0 , 1 , 2 ] >>> a[ - 3 :] # 倒数第三个到最后 [ 7 , 8 , 9 ] |
- Python的元组与列表类似,不同之处在于元组的元素不能修改。
- 元组使用小括号,列表使用方括号(例如记录坐标点,a = (123, 37))。
- 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
- 获取单个要素通过方括号,例如 dimension[0]
- 字典是另一种可变容器模型,且可存储任意类型对象(类似 HTML 和 XML 的标签与值)。
- 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
- d = {key1 : value1, key2 : value2 }
代码实现:按照数字排序,获取前四位数字对应的分类的数目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | >>> films_results = [ 128 , 118 , 16 , 18 , 20 , 130 ] >>> films_class = [ 'Action' , 'Action' , 'Romance' , 'Romance' , 'Romance' , 'Action' ] >>> sortedIndices = np.argsort(films_results) >>> sortedIndices array([ 2 , 3 , 4 , 1 , 0 , 5 ], dtype = int64) >>> k = 4 >>> classCount = {} >>> for i in range (k): voteLabel = films_class[sortedIndices[i]] classCount[voteLabel] = classCount.get(voteLabel, 0 ) + 1 >>> classCount { 'Romance' : 3 , 'Action' : 1 } |
dict.get(key,default=None),字典的get()方法,返回指定键的值,如果值不在字典中返回默认值。
dict.fromkeys(iterable, value=None, /): Create a new dictionary with keys from iterable and values set to value.
用来创建一个新的字典,keys 保留 iterable 的,值按照 value。
列表是Python中最基本的数据结构。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。列表的数据项不需要具有相同的类型。
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
1 2 3 | tup1 = ( 'physics' , 'chemistry' , 1997 , 2000 ); tup2 = ( 1 , 2 , 3 , 4 , 5 ); tup3 = "a" , "b" , "c" , "d" ; |
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
1 | d = {key1 : value1, key2 : value2 } |
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
本文以 列表(List) 为例。
1 2 3 4 5 6 7 | list1 = [ 'physics' , 'chemistry' , 1997 , 2000 ] list2 = [ 1 , 2 , 3 , 4 , 5 ] list3 = [ "a" , "b" , "c" , "d" , "e" ] print list1 print list2 print list3<br><br> print list1[ 0 ] <br> print list2[ 2 :] <br> print list3[ 1 : 4 ] |
********** RESULTS **********
1 2 3 | [ 'physics' , 'chemistry' , 1997 , 2000 ] [ 1 , 2 , 3 , 4 , 5 ] [ 'a' , 'b' , 'c' , 'd' , 'e' ]<br><br>physics <br>[ 3 , 4 , 5 ] <br>[ 'b' , 'c' , 'd' ] |
1 2 3 4 5 | list1 = [ 'physics' , 'chemistry' , 1997 , 2000 ] print list1[ 1 ] list1[ 1 ] = 'math' print list1[ 1 ] |
********** RESULTS **********
1 2 | chemistry math |
可以使用 del 语句来删除列表的的元素,如下实例:
1 2 3 4 5 6 7 | list1 = [ 'physics' , 'chemistry' , 1997 , 2000 ] print list1 print list1[ 1 ] del list1[ 1 ] print list1 print list1[ 1 ] |
********** RESULTS **********
1 2 3 4 | [ 'physics' , 'chemistry' , 1997 , 2000 ] chemistry [ 'physics' , 1997 , 2000 ] 1997 |
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示:
Python 表达式 | 结果 | 描述 | ||
---|---|---|---|---|
len([1, 2, 3]) | 3 | 长度 | ||
list[:2]、list[-3:]、list[:] | 灵活截取 | |||
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 | ||
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 | ||
3 in [1, 2, 3] | True | 元素是否存在于列表中 | ||
4 not in [1, 2, 3] | True | 元素是否不存在于列表中 | ||
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 | ||
[i+1 for i in range(0, 5)] | 通过已有列表建立新列表 | |||
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | list1 = [ 'physics' , 'chemistry' , 1997 , 2000 ] print len (list1) list2 = list1 + list1 list3 = list1 * 3 print list2 print list3 if ( 1997 in list1): print list1 else : print list2 for x in list1: print x |
********** RESULTS **********
1 2 3 4 5 6 7 8 9 10 11 | 4 [ 'physics' , 'chemistry' , 1997 , 2000 , 'physics' , 'chemistry' , 1997 , 2000 ] [ 'physics' , 'chemistry' , 1997 , 2000 , 'physics' , 'chemistry' , 1997 , 2000 , 'physics' , 'chemistry' , 1997 , 2000 ] [ 'physics' , 'chemistry' , 1997 , 2000 ] physics chemistry 1997 2000 |
Python包含以下函数:
序号 | 函数 |
---|---|
1 | cmp(list1, list2) 比较两个列表的元素 说明:list1 与 list2 一样,返回值为 0 |
2 | len(list) 列表元素个数 |
3 | max(list) 返回列表元素最大值 |
4 | min(list) 返回列表元素最小值 |
5 | list(seq) 将元组转换为列表 |
Python 包含以下方法:
序号 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort([func]) 对原列表进行排序 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2016-12-14 【230】4T硬盘如何完全利用(GPT)
2015-12-14 【189】◀▶ PowerShell 系统学习