天池python训练营Day04
列表
学习python过程中我们会遇到大量的数据,这时候列表就可以发挥它的作用,存储大量数据,让计算机去读取和操作.
// A code block
list_i=['小军',‘小红’,‘小李’] #['小军','小红','小李']是一个列表,'小红'等是列表里的元素
var foo = 'bar';
从列表里提取元素
// A code block
list_i=['小军','小红','小李'] #在列表里每个元素都有自己固定的位置,自左向右从0开始,'小军':list_i[0], '小红':list_i[1], '小李' :list_i[2]
for item in list_i:
print(item)
name=list_i[0] #取出小军,并赋值给name
print(name)
var foo = 'bar';
// An highlighted block
小军
小红
小李
小军
var foo = 'bar';
使用range()创建列表
// A code block
list2 = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0] #本式子是有条件的取值,要满足 (i % 2) !=0和 (i % 3) ==0 才可以
print(list2)
list3=[1,'lucky',['小军','小红','小李'],5] #这是一个混合列表
print(list3)
list4=[1,2,3,4,5,6,7,8]
print(list4[:2]) #从1开始,取到2
print(list4[3:]) #从4开始,取到8
print(list4[5:7]) #从6开始,取到7
print(list4[1:7:2]) #从2开始,取到7,间隔为2
var foo = 'bar';
// An highlighted block
[3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]
[1,'lucky',['小军','小红','小李'],5]
[1, 2]
[4, 5, 6, 7, 8]
[6, 7]
[2, 4, 6]
var foo = 'bar';
修改,添加和删除元素
创建的列表都是动态的,根据需要进行修改.
append()和insert()的用法
append()特点只可以增加一个元素
insert()特点可以灵活的增加元素
count(obj) 统计某个元素在列表中出现的次数
// A code block
lucky=['gules','blue','yellow']
lucky[0]='black' #修改第一个元素
print(lucky)
lucky=[2]
lucky.append(3) #增加一个元素3
print(lucky)
lucky.append([3,5]) #增加一个列表
print(lucky)
lucky.append(2,3) #append只可以增加一个元素,多会出错
print(lucky)
lucky=['make','model','year']
lucky.insert(0,'number') #开头增加元素number
print(lucky)
lucky=[1,2,1,3,4,3,5,8,5,3,9,3,5,3]
w=lucky.count(3) #统计3出现的次数
print(w)
var foo = 'bar';
// An highlighted block
['black','blue','yellow']
[2,3]
[2,[3,5]]
TypeError: append() takes exactly one argument (2 given)
['number','make','model','year']
5
var foo = 'bar';
remove()和pop()删除元素的用法
list.remove(obj) 移除列表中某个值的第一个匹配项
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove 和 pop 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引
del语句删除元素需要知道,所要删除元素在列表中出现的位置
// A code block
lucky=[1,2,3,4,5,6,7,8,9]
lucky.remove(2) #删除元素2
print(lucky)
n=[2,3,4,5,6,7]
x=n.pop(3) #删除第三个元素,并返回5
print(x)
motor=['soul','room','boday']
del motor[0] #删除soul
print(motor)
var foo = 'bar';
// An highlighted block
[1, 3, 4, 5, 6, 7, 8, 9]
5
['room','boday']
var foo = 'bar';
总结
append()特点只可以增加一个元素
insert()特点可以灵活的增加元素
count(obj) 统计某个元素在列表中出现的次数
remove(obj) 移除列表中某个值的第一个匹配项
pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove 和 pop 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引
del语句删除元素需要知道,所要删除元素在列表中出现的位置
元组
列表非常适合用于存储在程序运行期间可能变化的数据集。然而,有时候你需要创建一系列不可能修改的元素,元组可以满足这种需求,python将不可能修改的值称为不可变的,而不可变的列表被称为元组
元组特点:
小括号把所有元素绑在一起
逗号将每个元素一一分开
元组使用小括号,列表使用方括号。
元组与列表类似,也用整数来对它进行索引 (indexing) 和切片 (slicing)
下面展示一些 内联代码片
。
s1=(2,3,4,5,6,7,8)
print(s1)
print(s1[2:5]) #从4取到6,元组也可以像列表一样可以按切片的形式取
print(s1[0])
print(s1[1])
s1[0]=9 #记住元组的值不可修改
print(s1)
s1=(3,5) #元组的值虽然不可以修改,但可以赋值
print(s1)
#二维元组
s2=(1,2),('make','motor')
print(s2)
// An highlighted block
(2,3,4,5,6,7,8)
(4,5,6)
2
3
TypeError: 'tuple' object does not support item assignment
(3,5)
((1, 2), ('make', 'motor'))
var foo = 'bar';
更新和删除一个元组
元组有不可更改 (immutable) 的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改 (mutable),那么我们可以直接更改其元素,注意这跟赋值其元素不同。
// A code block
s3=(1,2,4,5,[4,6,7])
print(s3)
s3[4][1]=9 #6改为9
print(s3)
var foo = 'bar';
// An highlighted block
(1, 2, 4, 5, [4, 6, 7])
(1, 2, 4, 5, [4, 9, 7])
var foo = 'bar';
count和inter分别可以统计元组中元素出现的次数,元素在元组中的索引
x= (1,1, 10.31, 'python')
print(x.count(1)) # 出现的次数2
print(x.index(10.31)) # 索引2
// An highlighted block
2
2
var foo = 'bar';