人工智能应用基础——Python容器数据类型第二次实验报告

目录

一、实验目的

二、实验环境

三、实验内容

1列表

2元组

3字典

4综合案例

四、编程练习



一、实验目的

本实验旨在通过实际操作来加深对Python中容器数据类型(如列表、元组、字典和集合)的理解和应用。

二、实验环境

  1. 操作系统:Windows11
  2. 编程工具:Visual Studio Code
  3. Python版本:Python 3.8.19('AI')

三、实验内容

1列表

列表:Python中最常用的序列类型。

1 创建列表

用一对方括号将列表中包含的元素括起来就构成一个列表对象,并可以使用“=”将该列表对象赋值给变量。

案例1:

list_1=['a','b','c']
list_2=[]#创建一个空列表

2 特性:

(1)列表中元素类型可以相同,也可以不同;

(2)每个元素都有索引和值两个属性,索引用于标识元素在列表中的位置,值指的是元素对应的值。

索引可用正索引和负索引。正索引从0开始,-1则对应最后一个元素。

① list[n]

② list[m:n:step]  # 不含n

省略m则表示从首部开始;省略n则表示到尾部结束。正向索引从0开始,反向索引从-1开始。

注:取值范围不能超出可用范围,否则会报错。

案例2:

# 定义一个列表
my_list = [1, 2, 3, 4, 5]

# 使用下标索引访问列表中的元素
# 获取第一个元素,值为1
a = my_list[0]
# 获取第二个元素,值为2
b = my_list[1]
# 获取最后一个元素,值为5
c = my_list[-1]

# 打印结果
print("第一个元素:", a)
print("第二个元素:", b)
print("最后一个元素:", c)

3 列表常用函数

函数名

说明

list.append(x)

在尾部添加新元素x

list.index(x)

返回x在列表中的索引位置,不含x将返回一个运行时错误

list.count(x)

统计指定元素值x的出现次数

del  list[index]

删除列表对象中索引为index的元素

list.extend(lst2)

将lst2的元素添加到lst中

list.insert(index, x)

在index位置插入新元素x

len(list)

列表长度(注意:不能写为lst.len)

list.pop()

删除尾部元素,并返回删除对象

list.remove(x)

删除元素x

list.reverse()

将列表元素前后颠倒

list.sort()

默认从小到大排序

案列3:

① list.append(x)

# 定义一个空列表
ls_one = []

# 使用append()方法向列表中添加元素
ls_one.append(1)  # 添加整数1到列表末尾
ls_one.append("hello")  # 添加字符串"hello"到列表末尾
ls_one.append([3, 4])  # 添加列表[3, 4]到列表末尾

print(ls_one)  # 输出: [1, 'hello', [3, 4]]

输出结果:[1, 'hello', [3, 4]]

② len(list)

# 定义一个列表
ls_one = [1, 2, 3, 4, 5]

# 使用len()函数获取列表的长度
length = len(ls_one)
print("列表的长度是:", length)

输出结果:列表的长度是: 5

③ list.sort()

# 定义一个列表
lsone = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 使用sort()方法对列表进行排序
lsone.sort()

print("排序后的列表:", lsone)  # 输出:排序后的列表:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

排序后的列表: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

2元组

1 创建元组

元组是用一对圆括号“( )”定义的序列,元素间逗号分隔。

元组创建后,元组中的值不能修改(增/删/改)。

案例1:

tup_1 = (1, 2, 3)
# 创建一个空列表
tup_2 = ()
# 只有一个数据时,后面加逗号
tup_3 = (4,)

2 删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。

案例2

#定义一个元组
my_tuple=(1,2,3,4,5)
#使用del关键字删除整个元组
del my_tuple
# 尝试访问已删除的元组会引发NameError
print(my_tuple)  # 这里将会引发NameError,因为元组已经被删除

 print(my_tuple)  # 这里将会引发NameError,因为元组已经被删除
NameError: name 'my_tuple' is not defined

3 连接元组

虽元组不可修改,但可以进行连接组合。

案例3:

# 创建两个元组
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)

# 使用加号连接两个元组
tuple3 = tuple1 + tuple2

print("连接后的元组:", tuple3)  # 输出:连接后的元组:(1, 2, 3, 4, 5, 6)

连接后的元组: (1, 2, 3, 4, 5, 6)

4 元组内置函数

函数

描述

len(tuple) 

计算元组元素个数

max(tuple) 

返回元组中元素最大值

min(tuple) 

返回元组中元素最小值

tuple(seq)

将列表转换为元组

3字典

1 创建字典

字典由键及其对应值(key=>value)成对组成,称为键/值对。每个键值key :value,每个元素用逗号分隔,每对键值用“:”分隔

dict={key1:value1,key2:value2,……}

注:字典中,键是不可变且唯一的,如字符串、数字、元组。值可为任何数据类型且不必唯一。

案例1:

#创建一个空字典
my_dict = {}
#添加键值对到字典中
my_dict[ "name"] = "Alice"
my_dict[ "age"] = 30
my_dict[ "city"] = "New York"
#打印字典内容
print(my_dict)# 输出:{ 'name ' : 'Alice ', 'age ': 30,'city ': 'New York ' }

{'name': 'Alice', 'age': 30, 'city': 'New York'}
2 常用方法

函数名

说明

dict.clear ()

清除字典中所有元素

dict.copy()

复制整个字典

del  dict[key]

删除字典对象中键为key的元素

dict.get(key, default)

返回键key对应的值,如不存在key键则返回default

dict.items()

返回所有键值对

dict.keys()

返回所有键

dict.values()

返回所有值

dict.update(dct2)

用字典dct2的数据更新字典dct

dict.pop(key, default)

返回键key对应的值,并删除该元素,如不存在key键则返回default

① dict.get(key, default)

#创建一个字典
my_dict = { 'a': 1,'b': 2, 'c ': 3}
#使用get方法获取键'a‘的值,如果键不存在,则返回默认值
value_a = my_dict.get( 'a', 0)
print( "value of 'a' : ", value_a)#输出: value of 'a' : 1
#使用get方法获取键'd'的值,如果键不存在,则返回默认值e
value_d = my_dict.get( 'd ', 0)
print("value of 'd' : ", value_d)#输出: value of 'd' : o

value of 'a' :  1
value of 'd' :  0

② dict.items()

#创建一个字典
my_dict = { 'a': 1,'b': 2, 'c ': 3}
#使用items方法获取字典的所有键值对
items = my_dict.items()
#遍历键值对并打印
for key,value in items:
    print(f"Key: {key}, value: {value}")

Key: a, value: 1
Key: b, value: 2
Key: c , value: 3

③ dict.keys()

#创建一个字典
my_dict = {'a': 1,'b': 2, 'c': 3}
#使用keys()方法获取字典的所有键
keys = my_dict.keys()
#打印所有键
print("所有的键: ", keys)# 输出:所有的键: dict_keys([ 'a', 'b ', 'c '])

所有的键:  dict_keys(['a', 'b', 'c'])

④ dict.values()

#创建一个字典
my_dict = {'a': 1,'b': 2, 'c ': 3}
#使用values()方法获取字典的所有值
values = my_dict.values()
#打印所有值
print("所有的值: ",values)# 输出:所有的值: dict_values([1,2,3])

所有的值:  dict_values([1, 2, 3])

4综合案例

案例1:使用列表(List)来存储一系列数字,并计算这些数字的总和。

#定义一个列表,包含一些数字
numbers = [1,2,3,4,5]#初始化一个变量用于存储总和
total = 0
#遍历列表中的每个数字,并累加到total变量中
for number in numbers:
    total += number#打印总和
print( "The total sum of the numbers is: ", total)

The total sum of the numbers is:  15

案例2:使用元组(Tuple)来存储一系列不可变的数据项。

#定义一个元组,包含一些信息
person_info = ( ' John', 30,'New York ' )#访问元组中的元素
name = person_info[0]
age = person_info[1]
city = person_info[2]
#打印元组中的信息
print( "Name: " , name)
print( "Age: ", age)
print( "city: ", city)
#尝试修改元组中的元素(这会引发TypeError )
# person_info[e] = 'Jane'#这行代码会报错
#但是,我们可以将元组转换为列表进行修改,然后再转换回元组(如果需要的话)
person_info_list = list(person_info)
person_info_list[0] = 'Jane'
person_info_modified = tuple(person_info_list)
#打印修改后的元组
print( "Modified Person Info: ", person_info_modified)

Name:   John
Age:  30
city:  New York
Modified Person Info:  ('Jane', 30, 'New York ')

案例3:使用字典(Dictionary)来存储键值对(key-value pairs)的数据。

#定义一个字典,存储学生的姓名和分数
student_scores = {'张三': 90,'李四':85,'王五': 95}
#访问字典中的元素
zhang_score = student_scores[ '张三']
print("张三的分数:",zhang_score)
#修改字典中的元素
student_scores['李四'] = 88
print("李四修改后的分数: ", student_scores["李四"])
#添加新的键值对到字典中
student_scores['刘二']= 92
print("刘二的分数: ", student_scores[ '刘二'])
#遍历字典的键
print("学生列表:")
for student in student_scores:
    print(student)
#遍历字典的键值对
    print("所有学生的分数:")
for student,score in student_scores.items( ):
    print(f"{student}: {score}")

张三的分数: 90
李四修改后的分数:  88
刘二的分数:  92
学生列表:
张三
所有学生的分数:
李四
所有学生的分数:
王五
所有学生的分数:
刘二
所有学生的分数:
张三: 90
李四: 88
王五: 95
刘二: 92

四、编程练习

1. 求列表x = [ 9, 5, 4, 1, 2, 23, 34]中元素的个数,最大数和最小数。并在s中添加一个元素数在5的后面,删除元素23.

# 定义列表 x
x = [9, 5, 4, 1, 2, 23, 34]

# 计算列表中元素的个数
num_elements = len(x)

# 找出最大数和最小数
max_number = max(x)
min_number = min(x)

# 在元素5后面添加一个元素(这里使用任意值,例如 '新元素')
x.insert(x.index(5) + 1, '新元素')

# 删除元素23
x.remove(23)

print("元素个数:", num_elements)
print("最大数:", max_number)
print("最小数:", min_number)
print("修改后的列表:", x)

元素个数: 7
最大数: 34
最小数: 1
修改后的列表: [9, 5, '新元素', 4, 1, 2, 34]

2.给定一个包含若干整数的列表 ages,表示不同人的年龄。请编写一个Python程序,计算并打印出这个列表中所有人的年龄总和以及平均年龄。

ages = [25, 30, 45, 28, 22]

# 计算年龄总和
total_age = sum(ages)

# 计算平均年龄
average_age = total_age / len(ages)

print("年龄总和:", total_age)
print("平均年龄:", average_age)

年龄总和: 150
平均年龄: 30.0

3. 编写程序,修改字典案例1中已有的键-值对,改成自己的名字、年龄、城市

case1 = {
    'name': '张三',
    'age': 25,
    'city': '北京'
}

# 修改字典中的键-值对
your_name = '李四'  # 请将'李四'替换成您自己的名字
your_age = 30       # 请将30替换成您自己的年龄
your_city = '上海'  # 请将'上海'替换成您自己的城市

# 更新字典
case1['name'] = your_name
case1['age'] = your_age
case1['city'] = your_city

# 打印修改后的字典
print(case1)

{'name': '李四', 'age': 30, 'city': '上海'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值