Python学习之路——3.容器

这篇博客简单写一下容器,容器其实本质就是数组(在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学得更深。

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值