python元组和列表字典_Python【列表 字典 元组】

列表

列表用中括号[ ]把各种数据框起来,每一个数据叫作“元素”。

每个元素之间都要用英文逗号隔开

各种类型的数据(整数/浮点数/字符串)

————————————————————————————

从列表提取单个元素

每个元素都有自己的位置编号(即偏移量)

1.偏移量是从0开始的

2.列表名后加带偏移量的中括号,就能取到相应位置的元素

students = ['小明','小红','小刚']

print(students[0])

小明

—————————————————————————————

从列表提取多个元素

用冒号来截取列表元素的操作叫作切片

将列表的某个片段拿出来处理

列表切片口诀

左右空,取到头;左要取,右不取

#冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素

#冒号左边数字对应的元素要拿,右边的不动

>>> list2 = [5,6,7,8,9]

>>> print(list2[:])

[5, 6, 7, 8, 9]

>>> print(list2[2:])

[7, 8, 9]

>>> print(list2[:2])

[5, 6]

>>> print(list2[1:3])

[6, 7]

>>> print(list2[2:4])

[7, 8]

————————————————————————

切片和偏移量对比

偏移量取到的是列表中的元素,而切片则是截取了列表的某部分

>>> students = ['小明','小红','小刚']

>>> print(students[2])

小刚

>>> print(students[2:])

['小刚']

————————————————————————————

给列表增加/删除元素

append()函数

append()给列表增加元素,每次只能增加一个元素

报错信息

>>> list3.append(4,5)

Traceback (most recent call last):

File "", line 1, in

TypeError: append() takes exactly one argument (2 given)

>>> list3 = [1,2]

>>> list3.append(3)

>>> print(list3)

[1, 2, 3]

>>> list3.append([4,5]) #列表内部支持嵌套,单个列表也会视为一个元素

>>> print(list3)

[1, 2, 3, [4, 5]]

————————————————————————————

合并列表

把A和B的成绩合并成一个列表,并按照从低到高的顺序排序

list1 = [91, 95, 97, 99] #A

list2 = [92, 93, 96, 98] #B

# 把 A 组成绩赋值给一个新列表,用来存合并的成绩——这个细节要注意!

list3 =list1

list3.extend(list2) #list3 = list1 + list2也可以

print(list3)

[91, 95, 97, 99, 92, 93, 96, 98]

list3.sort()

print(list3)

[91, 92, 93, 95, 96, 97, 98, 99]

列表排序

————————————————————————————

del语句

students = ['小明','小红','小刚','小美']

del students[3] #语法是:del 列表名[元素的索引]

print(students)

['小明', '小红', '小刚']

既能删除一个元素,也可以删除多个

(原理和切片类似,左取右不取)

50258.html

50258.html

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

数据类型:字典

1.有名称;

2.要用=赋值;

3.用逗号作为元素间的分隔符

字典的外层是大括号{ }

字典的元素是由一个个键值对构成的,用英文冒号连接

scores = {'小明':95,'小红':90,'小刚':90}

字典中的键具备唯一性,而值可重复

扩展知识:len()函数

得出一个列表或者字典的长度(元素个数)

>>> students = ['小明','小红','小刚']

>>> scores = {'小明':95,'小红':90,'小刚':90}

>>> print(len(students))

3

>>> print(len(scores))

3

字典提取元素

字典靠的是键

scores = {'小明': 95, '小红': 90, '小刚': 90}

print(scores['小明']) #print字典名[字典的键]

95

给字典增加/删除元素

删除

del 字典名[键]

增加

字典名[键] = 值

scores = {'小明':95,'小红':90,'小刚':90}

del scores['小刚']

scores['小刚'] = 92

scores['小美'] = 85

print(scores)

{'小明': 95, '小红': 90, '小刚': 92, '小美': 85}

——————————————————————————

扩展

Python字典 items()函数以列表返回可遍历的(键, 值) 元组数组。

语法:

dict.items()

列子:

scores = {'语文':89, '数学':95, '英语':80}

print(scores.items())

dict_items([('语文', 89), ('数学', 95), ('英语', 80)]) #列表包含元组数组

遍历字典项

for a in scores.items():

print(a)

('语文', 89) #元组数组

('数学', 95)

('英语', 80)

遍历字典值

for a,b in scores.items(): #写成 for (a,b) in scores.items(): 或for a, b in scores.items():

print(a,b)

语文 89

数学 95

英语 80

50258.html

50258.html

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

列表和字典的异同

不同点

元素是有自己明确的“位置”的,

所以即使看似相同的元素,

只要在列表所处的位置不同,

它们就是两个不同的列表

>>> students1 = ['小明','小红','小刚']

>>> students2 = ['小刚','小明','小红']

>>> print(students1 == students2)

False

字典相比起来就显得随和很多,

调动顺序也不影响。

因为列表中的数据是有序排列的,

而字典中的数据是随机排列的

>>> scores1 = {'小明':95,'小红':90,'小刚':100}

>>> scores2 = {'小刚':100,'小明':95,'小红':90}

>>> print(scores1 == scores2)

True

总结:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值

————————————————————————————————————

相同点

1.修改元素,可以用赋值

list1 = ['小明','小红','小刚','小美']

list1[1] = '小蓝'

print(list1)

['小明', '小蓝', '小刚', '小美']

dict1 = {'小明':'男'}

dict1['小明'] = '女'

print(dict1)

{'小明': '女'}

#del语句通常是用来删除确定不需要的键值对

2.支持任意嵌套

列表嵌套

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]

print(students[1][3]) #先判断是列表第几个元素,再判断列表中要取出元素的偏移量

小芳

字典嵌套

scores = {

'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},

'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}

}

print(scores['第二组']['小芳']) #先找到字典的键,再找出要取出的值对应的键

88

总结:最外层是什么就是什么嵌套,提取多级嵌套的列表/字典时,要一层一层地取出来

任意嵌套的列子

students = {

'第一组':['小明','小红','小刚','小美'],

'第二组':['小强','小兰','小伟','小芳']

}

scores = [

{'小明':95,'小红':90,'小刚':100,'小美':85},

{'小强':99,'小兰':89,'小伟':93,'小芳':88}

]

print(students['第一组'][2])

小刚

print(scores[0]['小刚'])

100

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

元组tuple

小括号来包的

元组和列表都是序列,提取的方式也是偏移量

支持任意的嵌套

tuple1 = ('A','B')

list2 = (('A','B'),('C','D'),('E','F'))

print(tuple1[0])

A

print(list2[1][1])

D

*取出 反面角色 狼 *

townee = [

{'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},

'丑小鸭','坚定的锡兵','睡美人','青蛙王子',

[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]

]

print(townee[5][1]['反面角色'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值