Python快速编程入门——第5章 列表、元组和字典

作者 : 郭然 本文共6025个字,预计阅读时间需要16分钟 发布时间: 2020-05-2 共439人阅读

第5章 列表、元组和字典

一、列表概述
二、列表的循环遍历
三、列表常见的操作
四、列表的嵌套
五、元组
六、字典

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字—它的位置或索引,第1一个元素的索引是0,第2个元素是索引是1,一次类推。在Python序列的内置类型中,最常见的是列表(list)和元组(tuple)。除此之外,Python还提供了一种存储数据的容器—字典。

一、列表概述

列表概述
列表是用中括号表示:

list_exaple = [1,'xioaming','a',[2,'b']]
print(list_exaple[0])
print(list_exaple[1])
print(list_exaple[2])
print("-"*10)
print(list_exaple)
#结果:1
#xioaming
#a
#----------
#[1, 'xioaming', 'a', [2, 'b']]

二、列表的循环遍历

使用for循环遍历列表:使用for循环遍历列表的方式非常简单,只需要将遍历的列表作为for循环表达式中的序列就行。

name_list = ['xiaoming','zhangsan','xiaohua']
for name in name_list:
print(name)
#结果:
#xiaoming
#zhangsan
#xiaohua

使用while循环遍历列表
使用while循环遍历列表时,需要先获取列表的长度,将获取的列表长度作为while循环的条件。

name_list = ['xiaoming','zhangsan','xiaohua']
length = len(name_list)
i = 0
while i<length:
print(name_list[i])
i+=1
#结果:
#xiaoming
#zhangsan
#xiaohua

三、列表常见的操作

在列表中增加的元素的方式由很多种,具体如下:

通过append方法(与函数功能类似,后面会有介绍)可以向列表添加元素。

#定义变量name_list 默认由3个元素
name_list = ['xiaoming','zhangsan','xiaohua']
print("-----添加之前,列表name_list的数据-----")
for temp in name_list:
print(temp)
#向列表添加元素
temp_name = input("请输入你要添加的学生名字")
name_list.append(temp_name)
for temp in name_list:
print(temp)
#结果:
#xiaoming
#zhangsan
#xiaohua
#请输入你要添加的学生名字
#xiaoming
#zhangsan
#xiaohua
#xiaobai

通过extend方法可以将另一个列表中的元素逐一添加到列表中。
当插入一个元素用append,插入一组用extend

list_one = [1,2]
list_two = [3,4]
list_one.append(list_two)
print(list_one)
list_one.extend(list_two)
print(list_one)
#结果:
#[1, 2, [3, 4]]
#[1, 2, [3, 4], 3, 4]

通过insert(index,object)方法在指定位置index当前插入元素objcet。

list_one = [0,1,2]
list_one.insert(1,3)
print(list_one)
#结果:
#[0, 3, 1, 2]

在列表中查找元素
所谓的查找,就是 看看指定的元素是否存在,Python中查找的查用的常用运算符:
(1)in(存在):如果存在那么结果为True,否则为False。
(2)not int(不存在):如果不存在那么结果为True,否则为False。

#待查找的列表
name_list = ['xiaomng','xiaozhang','xiaohua']
#获取用户要查找的名字
find_name = input("请输入要查找的名字")
if find_name in name_list:
print('在列表中找到相同的名字')
else:
print('没有找到')
#结果:
#请输入要查找的名字
#没有找到

在列表中修改元素

list_demo = ['xiaomng','xiaozhang','xiaohua']
print("-----修改之前,列表list_demo的数据-----")
for temp in list_demo :
print(temp)
#修改元素
list_demo[1] = 'xiaolu'
print("-----修改之后,列表list_demo的数据-----")
for temp in list_demo :
print(temp)
'''
结果:
xiaomng
xiaozhang
xiaohua
-----修改之后,列表list_demo的数据-----
xiaomng
xiaolu
xiaohua
'''

在列表中删除元素
在列表中删除元素的方法有三种,具体如下:

(1)del:根据下标进行删除

movie_name = ['加勒比海盗','骇客帝国','第一滴血','霍比特人','速度与激情']
print("-----删除之前-----")
for temp in movie_name:
print(temp,end=" ")
del movie_name[2]
print()
print("-----删除之后-----")
for temp in movie_name:
print(temp,end=" ")
#结果:
#-----删除之前-----
#加勒比海盗 骇客帝国 第一滴血 霍比特人 速度与激情
#-----删除之后-----
#加勒比海盗 骇客帝国 霍比特人 速度与激情

(2)pop:删除最后一个元素

movie_name = ['加勒比海盗','骇客帝国','第一滴血','霍比特人','速度与激情']
print("-----删除之前-----")
for temp in movie_name:
print(temp,end=" ")
movie_name.pop()
print()
print("-----删除之后-----")
for temp in movie_name:
print(temp,end=" ")
#-----删除之前-----
#加勒比海盗 骇客帝国 第一滴血 霍比特人 速度与激情
#-----删除之后-----
#加勒比海盗 骇客帝国 第一滴血 霍比特人

(3)remove:根据元素的值进行删除

movie_name = ['加勒比海盗','骇客帝国','第一滴血','霍比特人','速度与激情']
print("-----删除之前-----")
for temp in movie_name:
print(temp,end=" ")
movie_name.remove('骇客帝国')
print()
print("-----删除之后-----")
for temp in movie_name:
print(temp,end=" ")
#-----删除之前-----
#加勒比海盗 骇客帝国 第一滴血 霍比特人 速度与激情
#-----删除之后-----
#加勒比海盗 第一滴血 霍比特人 速度与激情

列表的排序操作 如果希望对列表中的元素进行重新排列,则可以使用sort方法或者reverse方法实现。其中sort方法时将列表中的元素按照特定的顺序重新排列,默认为由小到大。如果要将列表中的元素由大到小排列,则可以将sort方法中的reverse参数的值设为True。

list_demo = [1,4,2,3]
list_demo.reverse()
print(list_demo)
list_demo.sort()
print(list_demo)
list_demo.sort(reverse=True)
print(list_demo)
#结果
#[3, 2, 4, 1]
#[1, 2, 3, 4]
#[4, 3, 2, 1]

四、列表的嵌套

什么时列表的嵌套
列表支持嵌套。列表的嵌套指的是一个列表的元素又是一个列表。

scholl_name = [['北京大学','清华大学'],
['南开大学','天津大学','天津师范大学'],
['山东大学','中国海洋大学']
]
print(scholl_name)
#[['北京大学', '清华大学'], ['南开大学', '天津大学', '天津师范大学'], ['山东大学', '中国海洋大学']]

嵌套列表案例–分配老师到不同的办公室

import random
#定义一个列表用来保存3个办公室
office = [[],[],[]]
#定义一个列表用来存储8位老师的名字
names = ['A','B','C','D','E','F','G','H']
for name in names:
index = random.randint(0,2)
office[index].append(name)
i = 1
for temp in office:
print("办公室%d的人数位:%d"%(i,len(temp)))
i+=1
for name in temp :
print("%s"%name,end='')
print("-"*20)
#办公室1的人数位:5
#ABEGH--------------------
#办公室2的人数位:1
#D--------------------
#办公室3的人数位:2
#CF--------------------

五、元组

Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改,元组使用圆括号包含元素,而列表使用方括号包含元素。

访问元素

tuple_demo = ('hello',100,4.5)
print(tuple_demo[0])
print(tuple_demo[1])
print(tuple_demo[2])
#结果:
#hello
#100
#4.5

修改元组
元组中的元素值时不允许修改的,但我们可以对元组进行连接结合。

tuple_one = ('hello',100,4.5)
tuple_two = ('abc','xyz')
tutple_three = tuple_one + tuple_two
print(tutple_three)
#结果:('hello', 100, 4.5, 'abc', 'xyz')

元组的遍历
可以使用for循环实现元组的遍历。

tuple_demo = (1,2,3,4,5,6)
for temp in tuple_demo:
print(temp)
#结果:
#1
#2
#3
#4
#5
#6

元组内置函数
Python提供的元组内置函数
len(tuple) 计算元组元素个数
max(tuple) 返回元组中元素的最大值
min(tuple) 返回元组中元素的最小值
tuple(seq) 将列表转换成元组

六、字典

字典介绍:字典时可以根据某一个数据的名称找到这个值
字典的常见操作:
(1)根据键值访问值

info = {'name':'班长','id':100,'sex':'f','address':'地球亚洲中国北京'}
print(info['name'])
print(info['id'])
#结果:
#班长
#100

(2)修改字典的值

info = {'name':'班长','id':100,'sex':'f','address':'地球亚洲中国北京'}
new_id = input("请输入新的序号")
info['id'] = int(new_id)
print("修改之后的id为:%d"%info['id'])
#结果:
#请输入新的序号
#修改之后的id为:4444

(3)添加字典元素

info = {'name':'班长','sex':'f','address':'地球亚洲中国北京'}
new_id = input("请输入新的序号")
info['id'] = int(new_id)
print(info)
#请输入新的序号{'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京', 'id': 4444}

(4)删除字典元素

info = {'name':'班长','sex':'f','address':'地球亚洲中国北京'}
print("删除前")
print(info)
del info['sex']
print('删除后')
print(info)
#结果:
#删除前
#{'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京'}
#删除后
#{'name': '班长', 'address': '地球亚洲中国北京'}

(5)计算字典中键值对的个数

dict_demo = {'Name':'zara','Age':7}
print("length:%d"%len(dict_demo))
#结果
#length:2

(6)获取字典的键试图

dict_demo = {'Name':'zara','Age':7}
print(dict_demo.keys())
#结果:
dict_keys(['Name', 'Age'])

(7)获取字典的值试图

dict_demo = {'Name':'zara','Age':7}
print(dict_demo.values())
#结果
#dict_values(['zara', 7])

(8)获取字典的元素试图

dict_demo = {'Name':'zara','Age':7}
print(dict_demo.items())
#dict_items([('Name', 'zara'), ('Age', 7)])

字典的遍历

(1)遍历字典的键

dict_demo = {'Name':'zara','Age':7}
for value in dict_demo.keys():
print(value)
#结果
#Name
#Age

(2)遍历字典的值

dict_demo = {'Name':'zara','Age':7}
for value in dict_demo.values():
print(value)
#结果:
zara
7

(3)遍历字典的中的元素

dict_demo = {'Name':'zara','Age':7}
for value in dict_demo.items():
print(value)
#结果:
#('Name', 'zara')
#('Age', 7)

(4)遍历字典中的键对值

dict_demo = {'Name':'zara','Age':7}
for key,value in dict_demo.items():
print("key=%s,vlaue=%s"%(key,value))
#结果:
#key=Name,vlaue=zara
#key=Age,vlaue=7

————————————————
版权声明:本文为CSDN博主「菠萝大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xhb29/article/details/85467018

打赏
VIP部落之Python分站——Python部落格,Python编程爱好者的天堂。
Python部落格 » Python快速编程入门——第5章 列表、元组和字典

常见问题FAQ

发表评论

提供最优质的资源集合

立即查看 了解详情