列表
列表和字典,比我们学过的“整数、浮点数、字符串”更加高级,更有“包容性”。
列表和字典的作用,就是可以帮我们存储大量数据,让计算机去读取和操作。
// A code block
students = ['党志文', '浦欣然', '罗鸿朗', '姜信然', '居俊德', '宿鸿福', '张成和', '林景辉']
for i in students:
print(i+'在不在?')
var foo = 'bar';
运行结果:
// An highlighted block
党志文在不在?
浦欣然在不在?
罗鸿朗在不在?
姜信然在不在?
居俊德在不在?
宿鸿福在不在?
张成和在不在?
林景辉在不在?
var foo = 'bar';
一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。
[‘小明’,‘小红’,‘小刚’]就是一个列表。
从列表提取单个元素
列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)。
偏移量是从0开始的,而非我们习惯的从1开始
// A code block
students = ['小明','小红','小刚']
print(students[0]) #输出小明
var foo = 'bar';
// An highlighted block
小明
var foo = 'bar';
从列表提取多个元素
// A code block
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]
var foo = 'bar';
给列表增加/删除元素
增加:append()语句
// A code block
students = ['小明','小红','小刚']
students.append('小美')
print(students) #增加小美
var foo = 'bar';
// An highlighted block
['小明', '小红', '小刚', '小美']
var foo = 'bar';
删除:del 列表名[元素的索引]
// A code block
students = ['小明','小红','小刚','小美']
del students[0]
print(students) #删除小明
var foo = 'bar';
// An highlighted block
['小红', '小刚', '小美']
var foo = 'bar';
remove(‘字符’)需要指定删除的元素
// A code block
students = ['小明','小红','小刚','小美']
students.remove('小红')
print(students)
var foo = 'bar';
// An highlighted block
['小明', '小刚', '小美']
var foo = 'bar';
字典
列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如’小明’:95,其中我们把’小明’叫键(key),95叫值(value)。
// A code block
scores = {'小明':95,'小红':90,'小刚':90}
print(scores['小红']) #输出95
var foo = 'bar';
// An highlighted block
95
var foo = 'bar';
给字典增加/删除元素
// A code block
scores = {'小明':95,'小红':90,'小刚':90}
del scores['小刚'] #删除了小刚(键,值都删除了)
scores['小刚']=92 #增加了小刚,值(value):92
scores['小美']=85 #增加了小美,值(value):85
print(scores)
var foo = 'bar';
// An highlighted block
{'小明': 95, '小红': 90, '小刚': 92, '小美': 85}
var foo = 'bar';
列表和字典的不同点
// A code block
students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2) #False
scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2) #True
var foo = 'bar';
// An highlighted block
False
True
var foo = 'bar';
列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表
字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的
列表字典的嵌套运用
// A code block
# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'
# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。
var foo = 'bar';
// An highlighted block
小美
99
var foo = 'bar';
元组
元组既然是不可变(immutable)对象,自然也就没有增加,删除元素的方法。
// A code block
a = () # 空元组对象
b = (1,'xiaoming',29.5,'17312662388')
c = ('001','2019-11-11',['小美','小明'])
var foo = 'bar';
因为元组不可以改变,但可以重新定义
// A code block
a=(0,1,2,3)
a=(0,'hello',2,3) #重新定义
print(a)
var foo = 'bar';
// An highlighted block
(0, 'hello', 2, 3)
var foo = 'bar';