Python06 列表1

一、列表的基本概念

1.python中的数据类型:

数字(不可变)、字符串(不可变)、

列表(可变)、元祖(不可变)、字典(可变)、集合(不可变)

2.容器类型的数据: 

列表(list)、元祖tuple、字典dic、集合 (序列)set

3.列表的特点

列表(数组):一个列表中可以存储多个不同类型的数据

列表存储数据的方式:将多个数据放到一个[ ]中,多个数据之间用逗号隔开

列表特点: 列表是可变的(指的是里面元素的个数和值可变)

表示:[  ]是列表的标志

4.声明列表

【例1】

list1 = [1, 2, 3, 10.9, 'abc']
print(list1)

此时声明了一个列表list1,有5个元素,分别是1,2,3,10.9,'abc'

【例2】声明一个空的列表

list2 = []

5.获取列表元素

(1)获取单个元素(通过元素对应的下标)

下标的范围: 0 ->元素个数-1;-1 —>元素个数

扫描二维码关注公众号,回复: 2013787 查看本文章

 注意: 通过下标获取列表元素的时候,下标不能越界

【例3】还是以上面两个例题的列表为例

print(list1[0])        # 获取下标是0的元素
print(list1[3])        # 获取下标是3的元素
print(list1[-1])        # 获取最后一个元素
print(list1[-2])
# print(list1[5])       # IndexError: list index out of range

(2)获取列表中的部分元素(切片)

格式1:列表名[开始下标:结束下标]

获取到的是从开始下标到结束下标前的所有的元素,组成的列表

【例4】

list3 = [2, 10.5, 'a', 'abc', 10]
print(list3[1:4])              # 获取下标为1开始到下标3的所有的元素
print(list3[:4])               # 获取从第一个元素开始到下标为3的所有元素
print(list3[2:])               # 获取下标为2开始到列表最后的所有元素
print(list3[:])               # 获取列表开始到结束的所有元素

格式2——列表名[开始下标:结束下标:步长]

【例5】

print(list3[0:4:2])         # 从下标为0开始到下标为3,每2个元素取一个
print(list3[::2])

此时:获取列表中所有下标是偶数的元素

(3)遍历列表

计算列表中所有元素的和

【例6】

list4 = [1, 34, 6, 2, 8, 91, 4]
for item in list4:
    if item % 2 == 0:
        print(item)

【例7】用while循环,获取列表中下标是奇数的元素

方法一:

list4 = [1, 34, 6, 2, 8, 91, 4]
i = 1
while i < len(list4):
    print(list4[i])
    i += 2

方法二:

i = 0
while i < len(list4):
    if i % 2 == 0:
        i += 1
        continue
    print(list4[i])
    i += 1

二、增加列表

1.创建一个空列表:

list1 = []
print(list1)

2.方法一:append方法

格式:列表名.append(元素)

注意:append是将元素添加到列表的最后的

【例8】

list1.append('abc')
print(list1)

输出:[2, 'abc']

【例9】

list1.append(10)
print(list1)

输出:[2, 'abc', 10]

【练习】找出列表中[1,34,5,6,89,3,2,4]所有的偶数,并且保存起来

list2 = []
for item in [1, 34, 5, 6, 89, 3, 2, 4]:
    if item % 2 == 0:
        list2.append(item)
print(list2)

输出:[34, 6, 2, 4]

3.方法二:列表名.insert(下标,元素)

格式:在指定的下标前插入指定的元素

注意: 这儿的下标可以越界!

 当下标大于等于列表的长度,会插入到列表的最后

【例10】

list3 = [1, 2, 3, 4, 5, 6, 7, 8]
list3.insert(1,'a')
print(list3)

输出:[1, 'a', 2, 3, 4, 5, 6, 7, 8]

【练习】用insert在4和5之间插入元素'b';在8的后面插入元素'c'

list3 = [1, 2, 3, 4, 5, 6, 7, 8]
list3.insert(4, 'b')
print(list3)

输出:[1, 2, 3, 4, 'b', 5, 6, 7, 8]

list3 = [1, 2, 3, 4, 5, 6, 7, 8]
list3.insert(10, 'c')    # 当下标大于等于列表的长度,会插入到列表的最后
print(list3)

输出:[1, 2, 3, 4, 5, 6, 7, 8, 'c']

当下标大于等于列表的长度,会插入到列表的最后

【例】在列表的最前面插入一个元素

list3 = [1, 2, 3, 4, 5, 6, 7, 8]
list3.insert(0, 'd')   
print(list3)

输出:['d', 1, 2, 3, 4, 5, 6, 7, 8]

4.修改元素

修改元素方法: 通过下标拿到对应的元素,然后重新赋值

【例11】将下标是1的元素变成20

list1 = [1, 2, 3, 4, 5]
list1[1] = 20    # 将下标是1的元素变成20
print(list1)

输出:[1, 20, 3, 4, 5]

【例12】让列表中的所有元素变为原来的2倍

list1 = [1, 2, 3, 4, 5]
for x in range(0, len(list1)):
    list1[x] = list1[x] * 2
print(list1)

输出:[2, 4, 6, 8, 10]

三、删除列表

1.del语句:

 (1)在python中,del可以删除任何内容

格式: del 列表名[下标]

【例13】 删除下标为1的元素

str1 = 'Hello'
list1 = ['a', str1, 10+20, 'b', True]
print(list1)

输出:['a', 30, 'b', True]

注意:下标不能越界

【练习】:删除列表中所有的偶数

list2 = [6, 2, 3, 5, 10, 6, 7, 8]
index = 0
while index < len(list2):
    if list2[index] % 2 == 0:
        del list2[index]
    else:
        index += 1
print(list2)

注意:过下标删除要注意下标的重新分配的问题

(2)isinstance(变量,类型):判断指定变量/值是否是指定的类型

str(字符串)、int(整型)、float(浮点型)、bool(布尔)、list(列表)、tuple(元祖)、dict(字典)、set(集合)

【例14】获取'aa'是否是字符串

re = isinstance('aa', str)  
print(re)

【例15】删除列表中的字符串

list3 = ['a', 1, 20, 'pp', 19.3, 'ohk']
index = 0
while index < len(list3):
    if isinstance(list3[index], str):
        del list3[index]
    else:
        index += 1
print(list3)

2.通过remove方法

(1)格式: 列表名.remove(元素)

   【例16】

list4 = ['a', 'b', 'c', 1, 2, 3]
list4.remove('c')
print(list4)

输出:['a', 'b', 1, 2, 3]

(2)使用remove删除列表元素的时候,如果指定的元素在列表中有多个,只删除第一个

list4 = ['a', 'b', 'c', 1, 2, 'c']
list4.remove('c')
print(list4)

输出:['a', 'b', 1, 2, 'c']

【例17】删除列表[1,3,4,7,8,2,3,4,1] 中所有的奇数

list5 = [1, 3, 4, 7, 8, 2, 3, 4, 1]
index = 0
while index < len(list5):
    value = list5[index]
    if value % 2 != 0:
        list5.remove(value)
    else:
        index += 1

print(list5)

输出:[4, 8, 2, 4]

注意:过下标删除要注意下标的重新分配的问题

3.使用pop()方法删除指定下标的元素

(1)格式1: 列表名.pop(下标)  

从列表中取出指定下标对应的元素

格式2: 列表名.pop()  从列表中取出最后一个元素

【例】将下标是1的元素从list6中取出,并且存到变量delitem中

list6 = [1, 2, 3, 4, 5, 6]
delitem = list6.pop(1)         # 将下标是1的元素从list6中取出,并且存到变量delitem中
print(delitem, list6)
del_item2 = list6.pop()
print(del_item2, list6)

输出:2 [1, 3, 4, 5, 6]

【练习】将一个列表[1,2,3,4,5,6]中的元素全部取出放到另外一个列表里面变成[6,5,4,3,2,1]

方法一:从后往前取

list1 = [1, 2, 3, 4, 5, 6]
list2 = []
while len(list1) > 0:
    value = list1.pop()
    list2.append(value)
print(list1)
print(list2)

方法二:从前往后取

list1 = [1, 2, 3, 4, 5, 6]
list2 = []
while len(list1) > 0:
     value = list1.pop(0)
     list2.insert(0, value)
print(list1)
print(list2)

四、列表的操作

1.求列表长度: len(列表名)

list1 = [1, 2, 3, 4, 5, 6]
length = len(list1)
print(length)

2.列表的+操作

列表1 + 列表2 : 将列表1和列表2中的元素,组合成一个新的列表

list2 = [1, 2, 3, 4] + ['a', 'b', 'c', 'd']
print(list2)

3.列表的*操作

列表*整数 : 将列表中元素重复指定次数,组合成一个新的列表

list3 = [10, 2]*4
print(list3)

输出:[10, 2, 10, 2, 10, 2, 10, 2]

4.in 和 not in

元素 in 列表:判断指定的元素是否在指定的列表中

list4 = ['abc', '123', 1, '0o', 10]
re = 'abcd' in list4
print(re)

输出:False

元素 not in 列表: 判断指定的元素是否不在列表中

re = 'abcd' not in list4
print(re)

输出:True

5.获取列表中的最大的元素

格式: max(列表)

注意: 获取最大值或者最小值的时候,列表中的元素的类型要么都是数字,要么都是字符串

list5 = [1, 34, 6, 78, 90, 12, 35]
max1 = max(list5)
print(max1)
list6 = ['abc', 'b', 'c', 'd', 'aaa']
print(max(list6))

输出

90

d

6.获取列表中的最小值

格式: min(列表)

【例】求表演的平均分数(5个裁判,给表演打分。去掉一个最高分,去掉一个最低分,求最后的平均分)

import random
# 随机产生固定范围的浮点数
value = random.uniform(1,10)
print(value)
# 随机产生5个分数
scores = []       # 用来存储产生的随机分数
for _ in range(5):
    value = random.randint(1, 10)
    scores.append(value)
print(scores)

# 去掉一个最高分和一个最低分
max1 = max(scores)
min1 = min(scores)
scores.remove(max1)
scores.remove(min1)

# 计算平均数
# sum(列表) : 计算列表中所有的元素的和

print(sum(scores)/len(scores))

7.将其他的数据转换成列表

格式: list(数据)

(1) 将字符串转换成列表

list1 = list('abcdef')
print(list1)

(2)将列表转换成字符串(不是仅仅将列表的元素拼接成字符串的,而是将整个列表所有的结构都作为字符串的字符)

list2 = [1, 2, 3, 4, 'a']
str1 = str(list2)
print('>>',str1,str1[0])

输出:>> [1, 2, 3, 4, 'a'] [

这个结果好好理解

(3)将range转换成列表

list2 = list(range(10))
print(list2)
输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]








猜你喜欢

转载自blog.csdn.net/zzqhello2018/article/details/80866059
今日推荐