列表
中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。
判断依据:最外层是不是中括号。
列表有列队排序之意,所以列表有顺序之分,它通过'位置'来取出元素。
索引取值
列表可以正着索引,也可以倒着索引,切片索引(左右空,取到头;左要取,右不取。)
注意计算机是从0开始数的,它底层逻辑语言是0101010101
所以列表有第0个元素,因为它是从第0个开始数。同理可得其他数据也是。
比如: print(list1[0]) 理解为
打印列表list1的索引值为0对应的元素,索引值也叫偏移量。
建议大家要自己运行代码以加深理解。
list1=['小明',21,1.78,'大四','深圳','广东',2018]
print(list1[0])#打印列表里索引值(偏移量)为0对应的元素
print(list1[1])#打印列表里索引值(偏移量)为1对应的元素
print(list1[2:5])#打印列表里的第2个元素至第4个元素(切片索引,左取右不取)
print(list1[:5])#打印列表里的第0个元素至第4个元素 (切片索引,左取右不取)
print(list1[2:])#打印列表里的第2个元素取到尾(左右空取到尽,左取右不取)
print(list1[:])#打印整个列表(切片索引 左右空取到尽)
print(list1[-1])#打印列表倒数第一个元素
print(list1[-2])#打印列表倒数第二个元素
print(list1[-5:-1])#打印列表倒数第二个元素至倒数第五个元素
增加、修改、删除
非常简单,仔细看后要去运行打代码哦。【纸上得来终觉浅,绝知此事要躬行】
list1=['小明',21,1.78,'大四','深圳','广东',2018]
list1.append('爱好')#用append()函数,添加一次只能添加一个元素
print(list1)#结果为['小明', 21, 1.78, '大四', '深圳', '广东', 2018, '爱好']
list1.extend(['旅行','科技','运动'])#用extend()函数,添加一次可以添加多个元素
print(list1)#结果为
#['小明', 21, 1.78, '大四', '深圳', '广东', 2018, '爱好', '旅行', '科技', '运动']
del list1[2]#用del 删除列表的第2个元素#结果为
#['小明', 21, '大四', '深圳', '广东', 2018, '爱好', '旅行', '科技', '运动']
注意:append()函数和extend()函数只用于列表
字典
所谓字典,就是类似咱们的新华字典,每个字后面都有解释,通过具体的字来找到改字的解释内容。
字典它有大括号{},键值对(一个键值对就是一个元素),冒号连接,冒号前是键,冒号后是值,键值对之间用逗号分隔。
相对于列表通过位置(索引值)来取列表的元素,字典则是通过键来取值。
键必须是唯一的,但值则不必。
注意:字典的键一般是整数或者字符串,而且具有唯一性。列表可以作为值,但不能是键。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
scores = {'小明':95,'小红':90,'小刚':90}
#上述字典scores 有3个【键值对】,小明是键,95是小明(键)对应的值
d = {'小明':'优秀','小红':'善良','小刚':'积极','小美':'美丽'}
#上述字典d 就有4个【键值对】
记得判定依据:它【最】外层的’外套‘{}大括号。
键取值
scores = {'小明':95,'小红':90,'小刚':90}
print(scores['小红'])
>>>
90
增加、修改、删除
scores['小彬']=80#增加
print(scores)
scores['小明']=93#修改
print(scores)
del scores['小红']#删除
print(scores)
列表中的数据是有序排列的,而字典中的数据是随机排列的
列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
列表和字典都支持任意嵌套。列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表
列表嵌套字典
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
字典嵌套列表
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
还有:字典嵌套列表,被嵌套的列表里还可以再嵌套字典,理论上可以一直嵌套下去,但实际上没多大意义。
students = {
'第一组':[{'小明':90,'小红':99},{'小刚':99,'小美':90}],
'第二组':['小强','小兰','小伟','小芳']
}
print(students['第一组'])#取出来后是个列表
print(students['第一组'][0])#取出列表的第0个元素(第0个元素是个字典)
print(students['第一组'][0]['小红'])#一层一层取,即可取出小红对应的值
>>>
[{'小明': 90, '小红': 99}, {'小刚': 99, '小美': 90}]
{'小明': 90, '小红': 99}
99
元组
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组中只包含一个元素时,需要在元素后边添加一个逗号消除歧义。
元组可以包含数字、字符串,列表,元组,在写元组的时候在末尾一定要加一个逗号,隔开不同的类型的数据。
元祖的取值方式跟列表一样,
索引取值
tup1 = ('小中', '编程', 1997, 2018)
tup2 = (18, 2018)
如:
tup1 = ('小中', '编程', 1997, 2018)
print(tup1[0]) #小中
print(tup1[-1]) #2018
print(tup1[-2]) #1997
print(tup1[1:3]) #('编程', 1997)
print(tup1[-3:-1]) #('编程', 1997)
print(tup1[:])#('小中', '编程', 1997, 2018)
不可修改
元组上不可修改,所以没有真正意义上的增加,修改,删除
#通过合并实现元组增加
tup1 = ('小中', '编程', 1997, 2018)
tup2=tup1+('梦想',) #记得要有逗号(增加其实就是两个元组合并)
print(tup2) #打印出 ('小中', '编程', 1997, 2018, '梦想')
print(type(('梦想',))) #<class 'tuple'> 表示为元组类型
print(type(('梦想'))) #<class 'str'> 表示为字符串类型
#只能删除整个元组,不能删除其他的。
tup1 = ('小中', '编程', 1997, 2018)
del tup1
# print(tup1) #打印会报错 not defined 因为tup1已被删除,所以不存在了。