day7

什么是列表(list)

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

可变(元素的个数、值、顺序可变) - 支持增加、删除、改变

有序 ---支持下标操作

列表数据:用[元素1,元素2,元素3,...]

元素:1.python支持的任何类型的数据(值、赋值的变量、除了赋值符以外的其他运算表达式)

2.不同元素的类型可以不一样

list1 = [10,12.0,True,'ASD',[1,2]]
num = 10
list2 = [num ,num*10+2,'abc'.count('a')]
print(list2)

列表元素操作

1.查---获取列表元素

1)获取单个元素

'''
语法:
列表[下标]---获取列表中制定下标对应的元素
注意:下标不能越界 要报错

names = ['大da','碗wan','宽kuan','面mian','1']
print(names[1])#碗wan
print(names[-1])#面mian

1)获取部分元素(切片)----结果是列表

列表[开始下标:结束下标:步长]

print(names[1:-1])#['碗wan', '宽kuan']
list2 = names[-1:1]#不报错结果是 []
print(names[:3:-1])#['碗wan', '宽kuan']

2)遍历

for 变量 in 列表:
    循环体
变量直接取到的是列表中的每个元素(item --- 元素; index ---下标

直接遍历元素

names = ['大da','碗wan','宽kuan','面mian','1']
for name in names:
    print(name)

遍历下标

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

补充

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

print(isinstance(10.0,int))#Flase
print(isinstance(10,int))#True
count = 0
list3 = [1,3,5,'1',[1,2],]
for a in list3:
    if isinstance(a,int):
        count += 1
        print(a)

列表元素操作

1.增 - 添加元素

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

films = ['妇联4','指环王','绿皮书','你的名字','千与千寻']
films.append('黑暗骑士')
print(films)#['妇联4', '指环王', '绿皮书', '你的名字', '千与千寻', '黑暗骑士']
n = films.append
print(n)#什么都没有 不能这样用

2.列表.insert(下标,元素)---在列表的指定下标前添加指定元素

films.insert(2,'黑暗骑士归来')
print(films)#['妇联4', '指环王', '黑暗骑士归来', '绿皮书', '你的名字', '千与千寻', '黑暗骑士']

练习:有一个有序的数字列表,输入一个数将它插入列表中,要求插入后不改变排列方式

[1,12,32,45,60]

输入3:

nums = [1,12,32,45,60]
num = int(input('请输入:'))

for index in len(nums):
    if index >= num:
        nums.insert(index,num)
        break
else:
    nums.append(num)

print(nums)

2.删除列表中元素

1)del列表[下标] - 删除列表中指定下标对应的元素

films = ['妇联4','指环王','绿皮书','你的名字','千与千寻']
del films[1]
print(films)#['妇联4', '绿皮书', '你的名字', '千与千寻']
del films[-1]
print(films)#['妇联4', '绿皮书', '你的名字']

下标不能越界

列表。remove(元素)--删除列表中指定的元素 如果被删元素有多个 他只删除第一个

                 #如果删除元素不存在 就会报错
films = ['妇联4','指环王','绿皮书','你的名字','千与千寻']
films.remove('指环王')#['妇联4', '绿皮书', '你的名字', '千与千寻']
films = ['妇联4','指环王','绿皮书','指环王','你的名字','千与千寻']
films.remove('指环王')

3.列表.pop() - 取出列表中最后一个元素

列表.pop() - 取出列表中制定下标的元素

films = ['妇联4','指环王','绿皮书','你的名字','千与千寻']
del_value = films.pop()
print(films,del_value)#['妇联4', '指环王', '绿皮书', '你的名字'] 千与千寻

del_value = films.pop(0)
print(films,del_value)#['指环王', '绿皮书', '你的名字'] 妇联4

练习:删除列表中成绩低于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]

else:
    print(scores)



scores = [70,45,50,87,67,30,100]
for score in scores[:]:#scores[:]中的值不会随着循环减少 就不会漏掉值
    if score < 60:
        scores.remove(score)
print(scores)

注意:遍历删除的时候需要考虑

3.改 - 修改元素的值

列表[下标] = 新值 -----修改指定下标对应的元素为新值

balls = ['乒乓','足球','篮球','排球']
balls[3] = '羽毛球'
print(balls)

60分以下改为'不及格‘

scores = [70,45,50,87,67,30,100]

1.列表运算符

数学运算: + , *

列表1 + 列表2 -----两个列表中的元素合并产生新的列表

new_list = ['a','b','c'] + [1,2,3]
print(new_list)

列表1 * N---------列表中的元素重复N次产生新的列表

print([1,2,3]*3)

2.比较运算:只比较相等 比较大小和字符串比较一样

print([1,2,3]==[1,2,3])  #True
print([1,2,3]==[1,3,2])  #False

值和顺序都要相等

in/ not in

元素 in 列表 ----判断列表中是否包含指定的元素

print([1,2] in [1,2,3,4,5])   #False
print([1,2] in [[1,2],3,4,5]) #True

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

list(数据)----将制定数据转换成列表

'''
所有的序列都可以转换成列表(字符串,range,列表)将序列中的元素作为列表元素

'''

print(list(100))数字不行

print(list(range(1,10)))#[1, 2, 3, 4, 5, 6, 7, 8, 9]

'''
注意:1.列表里面的数据类型要一样
2.数据类型要支持比较运算符

max(列表)----获取列表中最大值
min(列表)----获取列表中最小值
'''

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.基本数据类型int、float、bool、complex、str、list、dict、tuple、 set.....
    Smr_T阅读 2,953评论 0 0
  • 认识列表 列表(list): 什么是列表是python中的容器类的数据类型,可以用来存储多个数据。可变的,有序的。...
    大漠判官1阅读 1,677评论 0 1
  • 一、认识列表(list) 1.什么是列表 是python中的容器类的数据类型,可以用来存储多个数据, 可变的,有序...
    魅影_0d2e阅读 2,784评论 0 0
  • 01-认识列表 列表(list): 1.什么是列表 是python中的容器类的数据类型,可以用来存储多个数据。可变...
    佐手牵鼬手_89a9阅读 676评论 0 0
  • 同事小裴是个十分开朗的女孩子,她自在随性,善于助人,十分讨人喜欢。 她有着自己的梦想,有着对未来的渴望,她宽容大度...
    穆依雪阅读 3,709评论 0 2