python需要学数据结构吗_python学习之路--数据结构

python常用的数据结构有元组tuple,列表list,字典dictionary和集合set。

元组tuple

元组最大的特点是元素不可修改,因此对于代码的安全性而言,元组是最佳的数据结构。因为元组中的元素不可修改,因此对于元组中的元素只能查询不能更改。

#普通索引

tup = (1,2,3)

tup[1]

2

#切片索引

tup[1:]

(2, 3)

列表list

列表是python中最常用的数据结构之一,其特点为元素可改、有序且可以同时存储不同类型的数据,因此可以对其进行增删查选等操作。list.append():在列表最后一位添加一个元素

list.extend():在列表最后一位同时添加多个元素

list.insert():向列表某个位置插入一个元素

list.remove():删除列表中某一个元素

list.pop():删除列表中某个位置的元素(根据位置),默认为末尾最后一位,并返回删除值

del list[:]:同时删除列表中多个元素

list.reverse():将列表中的元素进行倒序

list.clear():移除列表中所有的元素

list.count():对列表中某个元素进行计数

list.index():返回列表中某个元素的最靠前的位置值

list.sort():对列表中的元素排序,默认为升序

#append的使用

list_A = [1,2,3,"a","G"]

list_A.append("APP")

list_A

[1, 2, 3, 'a', 'G', 'APP']

#extend的使用

list_B = ["ART","break","China"]

list_A.extend(list_B)

list_A

[1, 2, 3, 'a', 'G', 'APP', 'ART', 'break', 'China']

#insert的使用

list_A.insert(3,"love")

list_A

[1, 2, 3, 'love', 'a', 'G', 'APP', 'ART', 'break', 'China']

#remove的使用

list_A.remove("APP")

list_A

[1, 2, 3, 'love', 'a', 'G', 'ART', 'break', 'China']

#pop的使用

list_A.pop() #默认删除最后一个元素,即“China”

list_A.pop(5) #删除第5位的'G"

list_A

[1, 2, 3, 'love', 'a', 'ART', 'break']

#del的使用

del list_A[3:]

list_A

[1, 2, 3]

#reverse的使用

list_A.reverse()

list_A

[3, 2, 1]

#sort的使用

list_A.sort() #默认升序

list_A

[1, 2, 3]

#index的使用

list_A.index(3) #元素所在位置为2

2

#count的使用

list_A.append(3)

list_A.count(3)

2

#clear的使用

list_A.clear()

list_A

[]

字典

字典是python最常用的两大数据结构的另外一个,由键值对组成,其特点是键是唯一的且不能修改,因此键可以是数值、字符串和元组却不可以为列表;若键重复,值只取最后一个;键值对是无序的,因此不能通过切片索引的方式查询。dict.keys():获取字典所有的键

dict.values():获取字典所有的值

dict.items():或者字典所有的键值对

dict.get():判断字典中是否含有某个元素

dict.update():更新字典中的键值对

del dict[]:删除字典中某个键值对

dict.clear():删除字典中所有键值对

dict1 = {}

dict1["今天"] = "周四"

dict1["昨天"] = "周三"

dict1["明天"] = "周五"

dict1

{'今天': '周四', '昨天': '周三', '明天': '周五'}

#dict.keys()的使用

dict1.keys()

dict_keys(['今天', '昨天', '明天'])

#dict.values()的使用

dict1.values()

dict_values(['周四', '周三', '周五'])

#dict.items()的使用

dict1.items()

dict_items([('今天', '周四'), ('昨天', '周三'), ('明天', '周五')])

#dict.get()的使用

dict1.get("昨天",-1)

'周三'

dict1.get("大后天",-1) #当键不存在时,返回-1

-1

#dict.update()的使用

dict1.update({"后天":"周六"})

dict1

{'今天': '周四', '昨天': '周三', '明天': '周五', '后天': '周六'}

#del dict[]的使用

del dict1["昨天"]

dict1

{'今天': '周四', '明天': '周五', '后天': '周六'}

#dict.clear()的使用

dict1.clear()

dict1

{}

集合

集合的特点:元素是无序、不可重复且不可改变的,常用来去除重复元素。集合的运算有并集union,交集intersection,差集difference和对称差集sysmmetric difference。set3 = set1 | set2 = set1.union(set2) :set1和set2的并集

set3 = set1 & set2 = set1.intersection(set2) :set1和set2的交集

set3 = set1 - set2 = set1.difference(set2) :set1和set2的差集(元素出现在set1中,但不在set2中)

set3 = set1 ^ set2 = set1.sysmmetric difference(set2) :set1和set2的称差集(元素在set1或set2中,但不同时出现在二者当中)

set.add() :在集合中添加一个元素

set.remove() :在集合中删除一个元素

set.update() :在集合中添加多个元素

in/not in :判断某个元素是否出现/不出现在集合中

set1 = set([1,2,3,"a","b","c","a","1"])

set1

{1, '1', 2, 3, 'a', 'b', 'c'}

#并集

set2 = set([1,4,5,"ab","b","cd"])

set3 = set1|set2

set3

{1, '1', 2, 3, 4, 5, 'a', 'ab', 'b', 'c', 'cd'}

#交集

set3 = set1 & set2

set3

{1, 'b'}

#差集

set3 = set1-set2

set3

{'1', 2, 3, 'a', 'c'}

#对称差集

set3 = set1^set2

set3

{'1', 2, 3, 4, 5, 'a', 'ab', 'c', 'cd'}

#add()的使用

set1.add("abcd")

set1

{1, '1', 2, 3, 'a', 'abcd', 'b', 'c'}

#update()的使用

set1.update(["ac","1","ab"]) #set1原来就有元素"1",因此update的时候"1"只保留了一个;添加多个值时记住要存在列表中

set1

{1, '1', 2, 3, 'a', 'ab', 'abcd', 'ac', 'b', 'c'}

#remove()的使用

set1.remove("abcd")

set1

{1, '1', 2, 3, 'a', 'ab', 'ac', 'b', 'c'}

#in/not in()的使用

b = [i for i in set2 if i not in set1]

b

[4, 5, 'cd']

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值