python基础知识小结-数据结构

本文是关于Python基础知识的总结,涵盖了数据结构如数值、字符串、列表、元组、字典和集合,详细介绍了它们的特性和常用操作。字符串的转义、列表的元素修改、字典的键值对操作以及深拷贝和浅拷贝的概念也被提及。此外,还讨论了不同数据类型的可变性和有序性,并提供了若干操作示例。
摘要由CSDN通过智能技术生成

        这里是清安,写了挺久的python了。我也不能说自己基础很好,也只能算一般,所以本篇做一个基础知识小总结,看看哪些是不知道的。

数据结构

        python的数据结构有哪些?

Number(数值),String(字符串),List(列表),Set(集合),Tuple(元组),Dictionary(Dict字典)

        这其中又可以做一定的划分:

有序无序
可变列表字典、集合
不可变字符串、元组数值

数值   

        数值里面又包含了:int,float,bool,complex(复数)几种类型的数值。

        数值是可以有操作的:

加:1+1-->2
减:2-1-->1
乘:1*1-->1
除:1/1-->1
取余:5%2-->2
取整:5//3-->1

字符串

        上面说了,字符串是有序的,可以进行“+”,“*”运算,它是不可变的数据类型。具体学习可以参考python专栏模块里面的知识点。

        那么字符串我们都知道有' ',跟" ",还有''' '''或者""" """。他们有什么区别呢?

        ' '跟" "是没什么区别的。唯有''' '''跟' '或者" "之间是有的。看个例子:

a = """aa

a"""
print(a)

b = 'aa' \
    '' \
    'a'
print(b)


# 打印的结果:
aa

a
aaa

        再有的时候,你会看到一些a = r'qingan',这样前面带r或者\(上述例子)的这样的一个字符,表转意,能够让python准确的识别你的意思。

        看看字符串的一些其他操作:

        以a = 'qingan'为例

操作示例解释
分割

a.split('g')

['qin', 'an']

以'g'为分割点,对字符串进行切割
替换

a.replace('an','安')

qing安

将字符串'an'替换成字符串'安'
拼接

'-'.join(a)

q-i-n-g-a-n

将整个字符串用'-'逐一重新拼接,生成一个新的字符串
格式化

a = 'qing %s, %d'%('an', 0)

qingan,0

格式化操作符,值得注意的是%d只能是整数

        以上都是产生了一个新的字符串,而不是修改了字符串。

列表

        列表是一个有序的列表,列表中的任意元素都是可以修改的,且可以是任意类型,也可以进行"+","*"的运算。

        列表在python系列中讲的还是比较详细的,唯一没有讲到的就是数量统计:

        a = ['qing','an','an']

操作示例解释
数量统计

a.count('an')

2

统计'an'出现的次数

元组

        元组也是有序的,但是它是不可变的。元组在python系列中讲的也是比较的全的了,基本上都已经概括完了,剩下了就是举一反三的运用了。所以说,赶紧去看看吧。

字典

        字典是由一对{}组成的,这个叫花括号,至少在python中这么称呼。它有{'键':'值'}组成,也就是常说的键值对。它的优点在于访问速度比列表快。在3.6版本后可变并且无序的(往上走的python版本的字典是有序的)。字典在python系列中讲的实例还是比较多的,值得仔细学习学习。用法呢不充两个没有讲到的:

        a = {"qingan":"男","age":"18"}

操作示例解释
删除

a.popitem()

{"qingan","男"}

删除最后一个键值对
删除a.clear()清楚字典所有的键值对

集合

        集合的元素是唯一的,它会自动去重。你可能会联想到数学中的集合,没错,特性类似,交集、并集、差集等。集合呢在python系列中讲的也是比较细致的一部分,去学习学习吧。

深拷贝和浅拷贝

赋值

a = ['a', 'b']
b = a
b[0] = 'c'
print(a, b)


"""['c', 'b'] ['c', 'b']"""

        上述例子。在python中a列表是有一个内存地址的,当我们把b指向a的时候,b也就指向了a的内存地址。所以我们修改b的值的时候,a的值也就随之改变了。

浅拷贝

a = ['a', 'b', [1, 2]]
b = a.copy()
a[2][0] = 'qing'
print(a, b)

'''['a', 'b', ['qing', 2]] ['a', 'b', ['qing', 2]]'''

        这里就是a是一个单独的内存地址,b在copy了a后重新生成了一个地址,但是,这仅限于表面现象,也就是上述所看到的字符串a,b,而嵌套在列表中的另一个列表依旧会受到影响,可以修改值,这就是浅拷贝。

深拷贝

import copy

a = ['a', 'b', [1, 2]]
b = copy.deepcopy(a)
a[2][0] = 'qing'
print(a, b)

'''['a', 'b', ['qing', 2]] ['a', 'b', [1, 2]]'''

        深拷贝需要引入一个模块,深拷贝后,不管你在如何修改原来的变量a,b始终不会受到影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清安无别事

慢慢的积累一杯奶茶吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值