Day7—总结 列表

1、什么是列表 list

列表是python提供的容器型数据类型(序列),可变、有序

  • 可变(元素的个数、值、顺序可变) —— 支持 增、删、改
  • 有序 —— 支持下标操作

2、列表数据:[元素1,元素2,······]

元素: 可以是任何数据类型(值、赋值后的变量、除了赋值以外的运算表达式)
不同元素的类型可以不一样

list1 = [123, '11', 11.0 + 22, True]
num = 10
list2 = [num, num*10+2, 'abc'.count('a')]
print(list2)

3、列表元素的操作

3.1 查 - 获取列表中的元素

1)获取单个元素; 列表[下标] - 获取列表中指定下标的元素 返回时类型不变
————下标不能越界
2)获取部分元素(切片); 结果返回的是一个列表
3)遍历
直接遍历获取元素
——变量直接取到得是列表中的元素
间接获取下标遍历

for item in list2:
    print(item)

for index in range(len(list2)):
    print(list2[index])

isinstance函数

isinstance(数据,类型)
判断指定的数据是否是指定的类型

练习: 统计一个列表中整型元素的个数

list3 = [23, 78.2, 'age', [12,3], 290]
s = 0
for item in list3:
    if isinstance(item, int):
        s += 1
print(s)

3.2 增 —— 添加元素

1)
列表.append(元素) —— 在列表最后添加一个元素(修改原列表,不会产生新的列表)

films = ['1', '2', '3', '4', '5']
films.append('6')
print(films)

列表.insert(下标,元素) —— 在列表指定下标前插入一个元素

films.insert(2, '2.5')
print(films)

练习:一个有序的数字列表,输入一个数,将这个数插入到列表中,
要求插入后不改变列表数字大小排序

nums = [2, 12, 23, 43, 55]
num1 = 13
for index in range(len(nums)):
    if num1 < nums[index]:
        nums.insert(index, num1)
        break
else:
    nums.append(num1)
print(nums)

3.3 删 删除列表中的元素

1)
del 列表[下标] —— 删除列表中指定下标的元素,不能越界

nums = [2, 12, 23, 43, 55]
del nums[3]
print(nums)

2)
列表.remove(元素)
删除列表中指定的元素
如果删除的元素在列表中有多个,只删除最前面的哪一个
如果删除的元素在列表中不存在,程序会报错 ValueError: list.remove(x): x not in list

nums.remove(23)
print(nums)

3)
列表.pop() —— 取出列表中最后一个元素
列表.pop(下标) —— 取出列表中指定下标对应的元素

nums = [2, 12, 23, 43, 55]
del_num = nums.pop()
print(del_num, nums)

练习: 删除列表中成绩低于60的所有成绩

利用下标从前往后遍历会越界
直接从前往后遍历会漏掉
下标从后往前取

scores = [70, 45, 50, 87, 67, 30, 100]
for index in range(len(scores)-1, -1, -1):
    if scores[index] < 60:
        del scores[index]
print(scores)

使用while循环控制下标在不删除的时候才增加1,删除的时候不变。

scores = [70, 45, 50, 87, 67, 30, 100]
index = 0
while index < len(scores):
    if scores[index] < 60:
        del scores[index]
        continue
    index += 1
print(scores)

复制一个新的列表,从新列表中取值

scores = [70, 45, 50, 87, 67, 30, 100]
for num1 in scores[:]:
    if num1 < 60:
        scores.remove(num1)
print(scores)

将满足条件的值添加到新列表中

scores = [70, 45, 50, 87, 67, 30, 100]
del_scores = []
for index in range(len(scores)):
    if scores[index] < 60:
        del_scores.append(scores[index])
for num1 in del_scores:
    scores.remove(num1)
print(scores)

3.3 改 —— 修改元素的值

列表[下标] = 新值
修改指定下标对应的元素为新值
下标不能越界

scores = [70, 45, 50, 87, 67, 30, 100]
scores[1] = 99
print(scores)

4、列表运算符

数学运算 + *

列表1 + 列表2 ——> 将两个列表中的元素合并产生一个新的列表
列表1 * N ——> 列表重复N次 产生一个新的列表

比较运算: ==,!=
一般只比较相等或者不相等

in / not in
元素 in 列表 ——> 判断列表中是否包含指定的元素

len(列表) ——> 获取列表中元素的个数

list() ——> 将指定数据转换成列表
所有的序列可以转换成列表;不是序列转换不成列表
会将序列中的元素作为列表元素

max / min
max(列表) 获取列表中元素的最大值
min(列表) 获取列表中元素的最小值
注意:1、列表中元素类型必须一致
2、数据支持比较运算符

你可能感兴趣的:(Day7—总结 列表)