python基础部分之容器类型

 

容器
list   任何人都有权限对其进行增删改查

list相当于C中的数组,

 

list.append()    #每次增加一个,如果有多个元素,则会在原列表中增加一个列表,增加的列表中包含的是所增加的元素

list.extend()    #可每次增加多个元素

如    利用append和input输入2,3,4     list.append(input().split())       则  list=[['2','3','4']]

但如果是用extend输入的话就不同了     

list.extend(input().split())     则 list=['2','3','4']

列表的遍历:

1:  直接遍历元素     list=[4,5,6,7]

for i in list:

  print(i)  

结果如下

4

5

6

7

 

2. 利用range(len(list)) 通过索引间接遍历

for i in range(len(list)):

     print(i,list[i])

结果如下

0  4

1  5

2  6

3  7

 

tuple (元组,只读列表,(),元素由 ,隔开 可以存储任意数据 )存储重要数据,只能被查询,而不能对其增删改。

1. 索引与切片  : 和字符串处理相同
2.for循环: for i in tuple      i 对应每个元组中的元素
3.元组的嵌套
tul=(1,2,“li”,"日天",[“昊”,“王”],“python”)
注意 :如果元组中含有列表,字典,列表,字典中的元素是可以修改的,比如可以在tul这个元组中的列表增加一个“SB”,tul[4].append("SB")   ,只要不删除这个列表,可以对列表中的数据进行任意改动。元组并不常用,只是某些特定的需求会用到。且,元组中尽量不要放置其他容器类型。(儿子是你的儿子,但孙子不一定是你的孙子)
4.支持tuple.conut()  tuple.index()    len(tuple)等函数

dict  字典

list,tuple 查询速度慢,数据关联性较差

数据类型的划分(可变与不可变):
可变数据类型(不可哈希):   list dict set
不可变数据类型(可哈希的数据类型):str  int  bool  tuple
字典是以{}括起来,键值对的形式存储的  {“name”:“li”}  name是键    li是值  它们两个是一对键值对 字典可以包含任意个键值对
字典的键:只能是不可变的数据类型,大部分不是字符串就是数字,且字典的键不可重复***
字典的值:可以是任意数据,包括对象,内存地址等等

字典可以存储大量的 并且关系型数据比如存储个人信息,字典中可以存字典
字典的查询速度非常快,遵循哈希算法***

字典的使用:
1. 增删改查
dic={“name”:“li”,“age”:18,“sex”:“man”}
增:

(1).直接增加
dic["high"]=183
如果增加的键值对中的键与原字典中重复,则改变原字典中的值(有此键则修改,无则增加)
(2)。函数  dic.setdefault("string")   (有此键则不变,无此键则增加)dic.setdefault("weight")    如果只给一个参数,则只增加一个无对于值的键

删:

(1).用pop()函数,按照  键 删除      
  ret = dic.pop(“name”)   将 name 键值对删除   并将 字典中剩下的键值对返回给ret 
如果字典中没有你要用pop所删除的键,但是你删除了,会报错,但是如果给pop设置了第二个参数,就会返回第二个参数,并不会报错  
ret = dic.pop.("weighe",“0”)  则    ret = 0

(2)clear()
清空字典

(3)del  dic["string"]
用法   del  + 空格  加字典名 + 键名   注意:是空格 不是点
如果没有该键 ,则报错 ,且每次只能删除一个。    

(1.) 直接改 :  按照键值改     dic["name"] = "ding"   则  dic={“name”=" ding" .....}   和增中(1) 相同
(2.)up.date() 
dic 2={"name":"ding","weight":60}
调用 dic.update(dic2)
则 dic={“name”:”ding“,“age”:18,“sex”:“man”,“weight”:60}
dic2={“name”:“ding”,“weight”:60}
update函数将dic2中的键值对,增添到dic中,如果有相同键名的,则更改dic中的键对应的值。 比如dic["name"]对应的值由 “li” 变为了“ding”,且dic中增加了“weight”:60    (相同的覆盖,不同的添加)
up.date()的括号中的参数不仅可以是字典 ,也可以是变量,比如 dic.update(name="ding",weight=60)  此操作造成的结果和dic.update(dic2)  完全相同
,且 up.date()可以一次性增添任意个键值对。

(1.)ret=dic["string(键名)"]                   ret=dic.get("string")    
dic.get( )可设置返回值    如果没有所要查找的键,默认返回 None ,但可以设置返回值,和pop()相似。
ret=dic["name1"] ,       "name1"  并不在dic中,所以会报错。
如果是用   ret=dic.get("name1")    则编译器默认返回 None 并不会报错  


2.字典的嵌套

  dic={“dic1”:{“name”:“li”,“age”:18}
    1:["li","ding",3]
}
将dic1中增加“weight”:60
方法一 :直接赋值罚 :首先通过键名,找到该字典   然后赋值  dic[dic1][weight]=60
方法二:间接赋值法:可以另外创建一个字典,来作为中间变量
比如:
     dic3=dic[dic1]
    dic3[weight]=60   此操作结果和直接法相同。
对字典嵌套的操作还是和基本的字典操作相同,关键就是找到相应的键。

 

python中的分别赋值

a,b,c = 1, 2, "li"     ——>   a=1 b=2  c="li"     
a,b = (1,2)          ——>   a=1  b=2    
a,b = [1,2]            ——>   a=1  b=2
上述三种赋值方式相同
交互赋值
a=1 b=2   交换a ,b的位置
a , b = b , a     则结果为     a=2  b=1
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值