python 数据结构

**

数据结构

**
Python 有四种数据结构,分别是:列表、字典、元组、集合。我们先从整体上认识一下这四种数据结构:

list = [val1,val2,val3,val4] #列表
dict = {key1:val1,key2:val2} #字典
tuple = (val1,val2,val3,val4) #元组
set = {val1,val2,val3,val4} #集合

1 列表(List)
列表中的每个元素都是可变的;

列表中的元素是有序的,也就是说每个元素都有一个位置;

列表中可以容纳 Python 中的任何对象。如下:

all_in_list = [
1, #整数
1.0, #浮点数
‘a word’, #字符串
print(1), #函数
True, #布尔值
[1,2], #列表中套列表
(1,2), #元祖
{‘key’:‘value’} #字典
]
对于数据的操作,最常见的为增删改查。在此就省略了,网上找下相应函数练习下即可。

2 字典(Dict)
字典中数据必须是以键值对的形式出现的;

逻辑上讲,键是不能重复的;

字典中的键(key)是不可变的,也就是无法修改的,而值(value)是可变的,可修改的,可以是任何对象。

下面是个例子:

NASDAQ_code = {
‘BIDU’:‘Baidu’,
‘SINA’:‘Sina’,
‘YOKU’:‘Youku’
}

一个字典中键与值并不能脱离对方而存在,如果你写成了 {‘BIDU’:} 会引发一个语法错误:invalid syntax。

如果试着将一个可变(mutable)的元素作为 key 来构建字典,比如列表:key_test = {[]:‘a Test’} ,则会报一个错:unhashable type:‘list’。
同时字典中的键值不会重复,即便你这么做,相同的键值也只能出现一次:a = {‘key’:123,‘key’:123} 。

增删改查操作,在此省略了。

备注:

列表中用来添加多个元素的方法为extend,在字典中添加多个元素的方法为update()
字典是不能切片的,即这样的写法是错误的:chart[1:4]

3 元组(Tuple)
元组可以理解为一个稳固版的列表,因为元组是不可以修改的,因此在列表中的存在的方法均不可以使用在元组上,但是元组是可以被查看索引的,方式和列表一样。

letters = ('a, ‘b’, ‘c’, ‘d’)
letters[0]

相关的操作找代码练习下即可。

4 集合(Set)
集合则更接近数学上集合的概念。每一个集合中是的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。
集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

a_set = {1,2,3,4}
a_set.add(5)
a_set.discard(5)

5 数据结构的一些技巧
(1) 多重循环

代码演示:

for a, b in zip(num, str):
print(b, ‘is’, a)

(2) 推导式
列表推导式的用法很好理解,可以简单地看成两部分。如下图:
代码演示:

a = []
for i in range(1, 11):
a.append(i)

可以换成列表解析的方式来写:

b = [i for in i range(1, 11)]
列表解析式不仅方便,并且在执行效率上要远远胜过前者。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值