这篇博客简单写一下容器,容器其实本质就是数组(在C语言,Java中这么称呼),那么我们用理解数组的思路去看待容器,其实最基本的语法也并没有特别复杂,但是还是有很多的库函数,所以单独写一篇博客
话不多说,代码展示:
1.简单地遍历
a = (12, 3, 4, 31, 44)
b = [24, 15, 4, 3, 7]
c = 1, 2, 3, 4 ,5
for content in a:
print(content, end = ' ')#以空格间隔开
print()#再多输入一个换行,这里面无需添加输入'\n',如果添加了那么会输出两个换行
for content in b:
print(content, end = ' ')
print()
for content in c:
print(content, end = ' ')
python特别大的一个优点就是,只要别太离谱,啥都是对的,所以上述三种表示容器的方法都是对的,其中a和c都是tuple(元组),b是list(列表),运行结果如下:
12 3 4 31 44 #注意44后面还有一个空格哦
24 15 4 3 7
1 2 3 4 5
如果不太懂end,可以去我python的第一个博客看看,这里不再赘述
2.以下标来遍历
a = (12, 3, 4, 31, 44)
for index in range(len(a)):
print('index= ', index, ', number in a = ', a[index])
'''
len(a)表示a容器的长度,range()表示在某个范围,可以是单个的几个数也可以是一段范围
结合起来就表示range从0到len(a)-1的范围
'''
运行结果:
index= 0 , number in a = 12
index= 1 , number in a = 3
index= 2 , number in a = 4
index= 3 , number in a = 31
index= 4 , number in a = 44
3.往容器中添加元素()
append()函数
a = [12, 3, 4, 31, 44]
a.append(0)
print(a)
这里需要注意,使用append()函数容器必须是list类型,也就是用中括号[]把元素括起来,其他形式并不可以
运行结果:
[12, 3, 4, 31, 44, 0]
所以append默认是在list(列表)最后面添加一个元素
insert()函数
a = [12, 1, 3, 4, 31, 1, 44]
a.insert(1, 20)#在1下标这个位置插入20这个元素
print(a)
使用insert()函数容器必须是list类型
运行结果:
[12, 20, 1, 3, 4, 31, 1, 44]
extend()函数
a = [12, 1, 3, 4, 31, 1, 44]
a.extend([0, 0, 0])# extend可以将其它数据容器的内容取出,依次追加到列表list尾部
print(a)
运行结果:
[12, 1, 3, 4, 31, 1, 44, 0, 0, 0]
4.删除容器中的元素()
remove()函数(从元素内容角度):
a = [12, 1, 3, 4, 31, 1, 44]
a.remove(1)
print(a)
使用remove()函数容器也必须是list类型
运行结果:
[12, 3, 4, 31, 1, 44]
看来,remove()只能删除第一个出现的元素,对于后面的重复的元素它并不理睬
pop()函数(从下标角度):
a = [12, 1, 3, 4, 31, 1, 44]
num = a.pop(2)# pop()可以根据下标来删除元素,并返回删除的元素
print(a, "被删除的元素是:", num)
运行结果:
[12, 1, 4, 31, 1, 44] 被删除的元素是: 3
使用pop()函数容器也必须是list类型
del语法(从下标角度):
a = [12, 1, 3, 4, 31, 1, 44]
del a[0]
print("删除后的列表为:", a)
运行结果:
删除后的列表为: [1, 3, 4, 31, 1, 44]
使用del 语法容器也必须是list类型
5.排序
升序
a = [12, 1, 3, 4, 31, 1, 44]
a.sort()#或者可以写成a.sort(reverse = False)
print(a)
使用sort()函数容器也必须是list类型
运行结果:
[1, 1, 3, 4, 12, 31, 44]
降序
a = [12, 1, 3, 4, 31, 1, 44]
a.sort(reverse = True)
print(a)
运行结果:
[44, 31, 12, 4, 3, 1, 1]
6.查找某个元素的下标(index())
a = (12, 1, 3, 4, 31, 1, 44)
print(a.index(1))
index()函数在list(列表) 和tuple(元组)都可使用
运行结果:
1
所以容器的下标是从零开始的
7.对某个元素进行计数(count())
a = 12, 1, 3, 4, 31, 1, 44
print(a.count(1))#对元素1进行计数
print(a)
count()函数在list(列表) 和tuple(元组)都可使用
运行结果:
2
(12, 1, 3, 4, 31, 1, 44)
下面再来说说字典(dict):
字典类似于Java中的Map集合,存放的是键值对
1).简单的字典示例:
m_dict = {'apple':1, 'pear':'two', 'orange':3}
print(m_dict['apple'])
print(m_dict['pear'])
运行结果:
1
two
这里需要注意,只能根据键来找值
2).定义空字典
my_dict = {}
my_dict2 = dict()
这两种方法都是可以的
3).添加键值对
m_dict = {'apple':1, 'pear':'two', 'orange':3}
m_dict[3] = 20#添加3:20这个键值对
print(m_dict)
运行结果:
{'apple': 1, 'pear': 'two', 'orange': 3, 3: 20}
如果字典中存在添加的这个key,那么就对这个key的值进行更新,如果没有就添加此键值对
在跟莫烦老师学习的时候,他说字典是无序存放的,也就是遍历的时候会乱序输出,但是查找过资料以后,其实是跟python的版本有关系,大家可以参考这个博主的文章:【Python | 字典是有序的还是无序的?】-CSDN博客
4).一键对多值
m_dict = {'apple':[1, 2, 3], 'pear':{1:3, 3:'a'}}
print(m_dict)
print(m_dict['apple'])
print(m_dict['apple'][0])
print(m_dict['apple'][1])
print(m_dict['apple'][2])
print(m_dict['pear'])
print(m_dict['pear'][3])#通过'pear'键对应的字典中的3这个键来找到'a'这个值
运行结果:
[1, 2, 3]
1
2
3
{1: 3, 3: 'a'}
a
5).定义重复键(key)的字典
my_dict = {"张三":98, "张三":60, "李四":90}
print(my_dict)
运行结果:
{'张三': 60, '李四': 90}
看来字典会在key最后一个重复的键值对修改value的值
6).根据键来遍历整个字典
my_list = {"张三":96, "李四":91, "王五":86, "赵六":100}
m_key = my_list.keys()# 获取所有的键,存储在m_key中
for key in m_key:
value = my_list[key]
print(f"键为{key}, 值为{value}")# 等价于print("键为", key, "值为", value)
运行结果:
键为张三, 值为96
键为李四, 值为91
键为王五, 值为86
键为赵六, 值为100
总结
基本的python语法就是这些,为了区分记忆,我专门将tuple和list都可以使用的两个函数count()和index()放在了最后。可以说python在容器这块儿更向Java的特点靠拢了,也就是提供了大量方便的库函数,python的库函数还有很多很多,但是由于这个博客目的就是写基本的语法,并没有办法罗列所有的函数,也期待在将来的学习中可以把python学得更深。