Python学习——Day04
Python学习Day04
1.列表
1.why?
- str只能存储少量数据
- str类型,对字符串的任何操作,获取的结果还是字符串类型,存储的数据类型单一
2.what
- 列表中可以存放任意数据类型,存储大量数据
L = [11,'asd',Ture,[1,2,3]]
-
python中常用的容器型数据类型
-
列表是有序的,可索引,可切片(步长)
索引,切片(步长) 使用方法和字符串相同。
li = [1,3,2,"a",4,'b',5,'c'] l1 = li[:3] l2 = li[3:6] l3 = li[1:6:2] l4 = li[-3::-2] print(l1) print(l2) print(l3) print(l4) 结果 # [1, 3, 2] # ['a', 4, 'b'] # [3, 'a', 'b'] # ['b', 'a', 3]
3.how
1.列表的创建
-
方式一:
l1 = [1,2,'alex'] -
方式二:
l = list() #[] 空的列表 print(l) l1 = list('adsafrsdg') #['a', 'd', 's', 'a', 'f', 'r', 's', 'd', 'g'] print(l1) -
方式三:列表推导式,占坑
2.增删改查
li = ['zz','xx','cc''vv']
1.增
- append(),追加
li.append('bb')
print(li) #['zz', 'xx', 'ccvv', 'bb']
注:
print(li.append('bb')) #None
运行结果为:None,
因为这样打印的是给li列表中追加元素的动作, 而不是列表本身
注意操作
-
insert(); 可以选择位置进行插入
#insert(), 可以选择位置插入 li.insert(2,'qq') #['zz', 'xx', 'qq', 'cc', 'vv'] -
extend() 迭代着追加
li.extend('asdf')
#['zz', 'xx', 'cc', 'vv', 'a', 's', 'd', 'f']
2.删
li = ['zz','xx','cc','vv']
- 按照索引位置删除
li.pop(-2) #['zz', 'xx', 'vv']
*pop(); 按照索引删除,返回的是删除的元素
print(li.pop(-2)) #cc
括号中写入要删除元素的索引位置,不写默认从最后面删除
- 按照指定元素值去删
li.remove('xx') #['zz', 'cc', 'vv']
remove() 如果列表中有重名元素,默认删除从左数第一个
- clear() 删除列表中所有元素,列表变为空列表
li.clear() #[]
-
del删除
- 按照索引删除
del li[-1] #['zz', 'xx', 'cc']- 按照切片(步长)删除
del li[::2] #['xx', 'vv']
3.改
li = ['zz','xx','cc','vv']
- 按照索引改值
li[0] = 'qq' #['qq', 'xx', 'cc', 'vv']
- 按照切片改
li[::2] = 'ab'
#['a', 'xx', 'b', 'vv']
4.查
- 按索引,切片(步长)
- for循环
2.元组
- 只读列表,可存储大量数据, 可以索引,切片(步长)
(1,2,3)...
- 没有增删改 只有查
- 元组之中可以含有列表,此列表的内容可以增删改
l = (1,2,3,[4,5])
- 元组的拆包, 分别赋值 (拆包列表也可以,但是一般都用元组拆包)
a,b = (1,2)
print(a,b) #1 2
3.range
- 类似于列表,自定制数字范围的数字列表, 但是它不是列表
r = range(10) #存放数字0---9的列表
for i in range(1,10):
print(i) #打印1--9
range()中一个参数,默认从0开始, 顾头不顾尾.
- 步长
例如: 输出10以内的所有偶数
for i in range(2,10,2):
print(i)
l1 = range(5)
print(l1[1:3]) #range(1, 3)
print(l1[-1]) #4
浙公网安备 33010602011771号