python之四种容器

python有以下几种容器类型:Lists,dictionaries,sets,tuples

Lists

Python中的数组,但是列表的长度可变,而且能包含不同类型的元素。

xs=[3,2,1]
xs[0] #3
xs[2] #1
xs[-1] # 1
xs[-3] # 3
#从右是以0开始的,从左是从-1开始的
xs[2]='fpp'
print(xs) # [3, 1, 'fpp']
xs.append('bar') # 在列表的尾部添加元素
x=xs.pop() #移除并返回列表的最后一个元素
print(x,xs) #bar [3, 1, 'foo']

切片语法,很类似matlab中的语法,简单来说就是用下标访问数据(下标从0开始),而冒号右边有下标这种切片方式访问是左包含右不包含的

nums=[0,1,1,2,3]
print(nums[2:4]) # [1,2] 左包含右不包含
print(nums[2:]) #[1, 2, 3]从index 2 to end
print(nums[:2])#[0, 1]从start to index 2
print(nums[:])# from strat to end
print(nums[:-1])#[0, 1, 1, 2]左包含右不包含
nums[2:4]=[8,9] #赋值



切片语法在循环中的运用

animals=['cat','dog','monkey']
for idx,animal in enumerate(animals):
    print('#%d: %s'%(idx+1,animal))
#print格式话输出

nums=[0,1,2,3,4]
squares=[]
for x in nums:
    squares.append(x**2)
print(squares)#[0, 1, 4, 9, 16]

nums=[0,1,2,3,4]
squares=[x**2 for x in nums if x%2==0]
print(squares)#[0, 4, 16]
#列表推导 即将一种数据类型转换为另外一种 读法从循环开始读即为以下形式
for x in nums :
		if x%2==0:
		squares.append(x**2)

dictionaries

类似于C++的map,保存键值对,支持键和值均使用不同的数据类型
例如d={8:‘cat’,‘cy’:7}

 d={'cat':'cute','dog':'furry'} #创建并初始化字典
  d['fish']='wet' #添加键值对
  del d['fish'] #删除键值对
  print(d['cat']) #cute 打印cat对应的值
  print('cat' in d) #若cat在d中则显示true 否则显示false
 print(d['cat'])

字典中的循环

#使用键来进行迭代
di={'person':2,'cat':4,'spider':8}
for animal in di:
    legs=di[animal]
    print('A %s has %d legs'%(animal,legs))

#使用键和值一起进行迭代 要使用items方法
di={'person':2,'cat':4,'spider':8}
for animal ,legs in di.items():
    print('A %s has %d legs'%(animal,legs))

#字典推导
nums=[0,1,2,3,4]
square={x:x**2 for x in nums if x%2==0}
print(square)
#与下列代码作用相同
square={}
for x in nums:
    if x%2==0:
        square[x]=x**2    
print(square)
#结果:{0: 0, 2: 4, 4: 16}

set

集合元素数据类型可以不同,需要注意的是集合中元素是无序 的

an={'cat',1,2,'mao'} #允许不同的数据类型
print('cat' in an) #判断cat是否在an中,在则返回true,否则返回false
an.add('test') #添加
an.remove('cat') #删除
print(len(an)) #输出长度

for animal in animals:
    print('%s'%(animal)) # fish cat

#集合推导
from math import sqrt
nums={int(sqrt(x)) for x in range(30)}
print(nums)

tuples元组

简单来说就是两个元素的二元组

t=(2,'x')
d={t:'test'}
print(d[t])#test
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值