我的git代码仓库: [https://code.aliyun.com/whjwnavy] or [https://github.com/WHJWNAVY]

Python学习:列表、元组和字典

设计语言 WHJWNAVY 167℃ 0评论

#list列表

################################################################################

#list是一种有序的集合,可以随时添加和删除其中的元素

namestr = ["aaa""bbb""ccc"]#即为一个列表

print(len(namestr))#列表元素个数

print(namestr[0])#元素索引

namestr[0]="111"#修改

print(namestr)

namestr.insert(0,"AAA")#指定位置插入

print(namestr)

namestr.append("ddd")#在末尾追加

print(namestr)

namestr.pop()#删除末尾元素

print(namestr)

namestr.pop(0)#删除指定元素

print(namestr)

 
 

 
 

#tuple元组

################################################################################

#tuplelist非常类似,但是tuple一旦初始化就不能修改

 
 

classmates = ('Michael''Bob''Tracy')

 
 

现在,classmates这个tuple不能变了,它也没有append()insert()这样的方法。

其他获取元素的方法和list是一样的,你可以正常地使用classmates[0]classmates[-1]

但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple

代替list就尽量用tuple

# tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。

 
 

 
 

#字典dict和set

################################################################################

# dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,

具有极快的查找速度。dict内部存放的顺序和key放入的顺序是没有关系的。

# dictkey必须是不可变对象。

stud = {"xiaohong":95"xiaoming":88"xiaofang":93"xiaoyu":86}

print(stud["xiaohong"])

 
 

一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面

的值冲掉

stud["xiaohong"] = 100

print(stud["xiaohong"])

 
 

如果key不存在,dict就会报错。

#print(stud["xiaolan"])

 
 

要避免key不存在的错误,有两种办法,一是通过in判断key是否存在,

二是通过dict提供的get方法,如果key不存在,可以返回None,或者

自己指定的value 

print("xiaolan" in stud)

print(stud.get("xiaolan"))

print(stud.get("xiaolan", -1))

 
 

要删除一个key,用pop(key)方法,对应的value也会从dict中删除。

stud.pop("xiaohong")

print(stud)

 
 

list比较,dict有以下几个特点: 

# 1.  查找和插入的速度极快,不会随着key的增加而增加; 

# 2.  需要占用大量的内存,内存浪费多。 

list相反: 

# 1.  查找和插入的时间随着元素的增加而增加; 

# 2.  占用空间小,浪费内存很少。

 
 

# setdict类似,也是一组key的集合,但不存储value。由于key不能

重复,所以,在set中,没有重复的key。 要创建一个set,需要提供

一个list作为输入集合。重复元素在set中自动被过滤。set也是无序的。

st = set([12333445])

print(st)

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果。

通过remove(key)方法可以删除元素。

st.add(5)

st.add(6)

print(st)

st.remove(3)

print(st)

 
 

# set可以看成数学意义上的无序和无重复元素的集合,因此,两个set

以做数学意义上的交集、并集等操作。

st0 = set([1234])

st1 = set([3456])

print(st0 & st1)

print(st0 | st1)

转载请注明:胡椒小兄弟 » Python学习:列表、元组和字典

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情 签到