day4__列表的初识(列表的创建、增删改查、元组、range)

一、列表的初识

1、列表的创建

1】创建一个列表有三种方式:

第一种: (常用)

li = [100,'pyton学习',True,[1,2,3]]

第二种:(不常用)

l1 = list()  # 空列表
# l1 = list(iterable)  # 可迭代对象
l1 = list('123')
print(l1)  # ['1', '2', '3']

第三种 :列表推导式(后面会学到)

l1 = [i for i in range(1,5)]
print(l1)  # [1, 2, 3, 4]
2】列表的索引切片
li = [100,'pyton学习',True,[1,2,3]]
#索引
print(li[0],type(li[0]))
print(li[1],type(li[1]))
print(li[-1])
print(li[3])
#切片
li = [1, 3, 2, "a", 4, "b", 5,"c"]
# 通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
l1 = li[0:3]
print(l1)
# 通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
l2 = li[3:6]
print(l2)
# 通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
l4 = li[1:-2:2]
print(l4)
3】增

append 追加,给列表的最后面追加一个元素

li = [1,2,'a']
li.append(666)
print(li)
li = ['张三','李四','白龙']
while 1:
    name = input("请输入新员工的姓名:(Q或者q退出程序)")
    if name.lower() == 'q':
        break
    li.append(name)
    print(li)
    break
内容输出:
请输入新员工的姓名:(Q或者q退出程序)mrxinog
['张三', '李四', '白龙', 'mrxinog'] 

insert 插入在列表的任意位置插入元素

li = ['李四','张三','a']
li.insert(1,'mrxiong')
print(li)

extend迭代着追加,在列表的最后面迭代着追加一组数据

li = [1,2,'a']
li.extend('mrxiong')
print(li)
li = [1,2,'a']
li.extend(['oldboy'])
print(li)
4】删

pop按照索引去删除

li = ['女神','吴老师','mrxiong','张三']
print(li.pop(-2))  #返回的是删除的元素
print(li)
输出结果:
mrxiong
['女神', '吴老师', '张三']

li = ['女神','吴老师','mrxiong','张三']
print(li.pop())  #空格是默认删除最后一个
print(li)
输出结果:
张三
['女神', '吴老师', 'mrxiong']

remove 指定元素删除

li = ['女神','吴老师','mrxiong','张三']
li.remove('mrxiong')
print(li)
输出结果:
['女神', '吴老师', '张三']
li = ['mrxiong','女神','吴老师','mrxiong','张三']
li.remove('mrxiong')   #如出现有重名元组,默认删除从左到右第一个
print(li)
输出结果:
['女神', '吴老师', 'mrxiong', '张三']

clear()

li = ['mrxiong','女神','吴老师','mrxiong','张三']
li.clear()
print(li)
输出结果:
[]

del

​ #按索引来删

li = ['mrxiong','女神','吴老师','mrxiong','张三']
del li[-1]
print(li)
输出结果:
['mrxiong', '女神', '吴老师', 'mrxiong']

​ #按照切片(步长)删除

li = ['mrxiong','女神','吴老师','mrxiong','张三']
del li[::2]
print(li)
输出结果:
['女神', 'mrxiong']
5】改

按照索引来修改

li = ['mrxiong','女神','吴老师','mrxiong','张三']
li[0] = '哈哈'
print(li)
输出结果:
['哈哈', '女神', '吴老师', 'mrxiong', '张三']

按照切片修改

li = ['mrxiong','女神','吴老师','mrxiong','张三']
li[1:2] = '哈哈','叶叶'
print(li)
输出结果:
['mrxiong', '哈哈', '叶叶', 'one', '吴老师', 'mrxiong', '张三']
li = ['mrxiong','女神','吴老师','mrxiong','张三']
li[::2] = 'abc'
print(li)
输出结果:
['a', '女神', 'b', 'mrxiong', 'c']
6】查

索引查询

li = ['mrxiong','女神','吴老师','mrxiong','张三']
print(li[1])
输出结果:
女神

切片(步长)查询

li = ['mrxiong','女神','吴老师','mrxiong','张三']
l1 = li[1:4]
print(l1)
输出结果:
['女神', '吴老师', 'mrxiong']
li = ["mrxiong","女神","吴老师","mrxiong","张三"]
l1 = li[::2]
print(l1)

循环查询

li = ["mrxiong","女神","吴老师","mrxiong","张三"]
for i in li:
    print(i)
输出结果:
mrxiong
女神
吴老师
mrxiong
张三
7】列表相加与整数相乘
l1 = [1,2,3]
l2 = [4,5,6]
print(l1+l2)
输出结果:
[1, 2, 3, 4, 5, 6]
l1 = [1,2,3]
l2 = [4,5,6]
print(l1*3)
输出结果:
[1, 2, 3, 1, 2, 3, 1, 2, 3]

练习题:

列表中追加元素"seven",并输出添加后的列表

 li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
 li.append("serven")
 print(li)

请在列表的第1个位置插入元素"Tony",并输出添加后的列表

 li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
 li.insert(1,"tom")
 print(li)

请修改列表第2个位置的元素为"Kelly",并输出修改后的列表

 li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
 li[2] = "Kelly"
 print(li)

请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。

li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
l2=[1,"a",3,4,"heart"]
print(li+l2)

请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。

li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
s = "qwert"
li.extend(s)
print(li)

请删除列表中的元素"ritian",并输出添加后的列表

li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
li.remove("ritian")
print(li)

请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表

li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
print(li.pop(2))
print(li)

请删除列表中的第2至4个元素,并输出删除元素后的列表

li = ["mrxiong","WuSir","ritian","barry","wenzhou"]
del li[2:4]
print(li)

2、 列表的嵌套

将li中的'taobao'变成大写并放回原处

li = [1,2,'taobao',[1,'mrxiong',3]]
li[2] = li[2].upper()
print(li)

给小列表[1,'mrxiong',3]追加一个元素,'python'

li = [1,2,'taobao',[1,'mrxiong',3]]
li[3].append('python')
print(li)

将列表中的'mrxiong'通过字符串拼接的方式在列表中变成'mrxiongsb'

li = [1,2,'taobao',[1,'mrxiong',3]]
li[3][1] = li[3][1]+'sb'
print(li)

lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
将列表lis中的"tt"变成大写(用两种方式)。

​ 方法一:

lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3][2][1][0]=lis[3][2][1][0].upper()
print(lis)

​ 方法二:

lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3][2][1][0]= "TT"
print(lis)

将列表中的数字3变成字符串"100"。

lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[1], lis[3][2][1][1] = 100, 100
print(lis)

将列表中的字符串"1"变成数字101。

lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3][2][1][2] = 101
print(lis)

3、元组

只读列表。存大量的数据,可以索引、切片(步长)操作

tu = (100,'mrxiong',True,[1,2,3])
print(tu[0])
print(tu[3])
print(tu[:3])

for i in tu:
    print(i)

如上例,虽然元组是不可以修改,查元组里的小列表[1,2,3]里的内容是可以增删改的

tu = (100,'mrxiong',True,[1,2,3])
del tu[3][0]
print(tu)
输出结果:
(100, 'mrxiong', True, [2, 3])

注:重要数据,用户名,密码,个人信息,不想让别人改动的一些数据,存在元组中

元组的拆包,分别赋值

tu = (1,2,3,4)
a, b, c, d= tu
print(a,b,c,d)
输出结果:1 2 3 4

注:元组的拆包分别赋值,必须要和元组一一对应

4、range

类型列表,自定制数字范围的数字列表

r = range(10)   # 类似于可定议范围数字列表[0,1,2,3,4,5,6,7,8,9,10]
print(r)
for i in r:
    print(i)
for i in range(1, 20):
    print(i)

以步长打印1--20的偶数

for i in range(2, 20, 2):
    print(i)

打印20----1

for i in range(20, 0, -1):
    print(i)

例:

#利用for循环,利用range将ll列表的所有索引依次打印出来
ll = [1,2,3,4,5,'python',5]
for i in range(len(ll)):
    print(i)
输出结果:
        0
	1
	2
	3
	4
	5
	6
posted @ 2020-06-17 01:01  MrXiong  阅读(45)  评论(0编辑  收藏