【277】◀▶ Python 列表/元组/字典说明

时间:2023-03-09 08:20:41
【277】◀▶ Python 列表/元组/字典说明

目录:


参考:Python 列表(List)使用说明

列表截取很灵活,下面通过例子说明:

还可以通过 a[0:8:2] 来截取

>>> 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 元组(Tuple)使用说明

  • Python的元组与列表类似,不同之处在于元组的元素不能修改。
  • 元组使用小括号,列表使用方括号(例如记录坐标点,a = (123, 37))。
  • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
  • 获取单个要素通过方括号,例如 dimension[0]

参考:Python 字典使用说明

  • 字典是另一种可变容器模型,且可存储任意类型对象(类似 HTML 和 XML 的标签与值)。
  • 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
  • d = {key1 : value1, key2 : value2 }

代码实现:按照数字排序,获取前四位数字对应的分类的数目

>>> 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 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

本文以 列表(List) 为例。


一、访问列表中的值
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5]
list3 = ["a", "b", "c", "d", "e"] print list1
print list2
print list3 print list1[0]
print list2[2:]
print list3[1:4]

********** RESULTS **********

['physics', 'chemistry', 1997, 2000]
[1, 2, 3, 4, 5]
['a', 'b', 'c', 'd', 'e'] physics
[3, 4, 5]
['b', 'c', 'd']
二、更新列表
list1 = ['physics', 'chemistry', 1997, 2000]
print list1[1] list1[1] = 'math'
print list1[1]

********** RESULTS **********

chemistry
math
三、删除列表元素

可以使用 del 语句来删除列表的的元素,如下实例:

list1 = ['physics', 'chemistry', 1997, 2000]
print list1
print list1[1] del list1[1]
print list1
print list1[1]

********** RESULTS **********

['physics', 'chemistry', 1997, 2000]
chemistry
['physics', 1997, 2000]
1997
四、Python 列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示:

Python 表达式 结果 描述
len([1, 2, 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)]   通过已有列表建立新列表
>>> a
[0, 1, 2, 3, 4]
>>> b = [i+1 for i in a]
>>> b
[1, 2, 3, 4, 5]
>>> c = a + 1
>>> [i for i in range(0, 5)]
[0, 1, 2, 3, 4]
>>> [str(i) for i in range(0, 5)]
['0', '1', '2', '3', '4']
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 **********

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 列表函数 & 方法

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])
对原列表进行排序