2021.1.25-date5列表

1.什么是列表

'''
列表是容器型数据类型,将[]作为容器标志,里面多个元素用逗号隔开;[元素1,元素2,元素3,...]
列表是可变的(可变指元素的个数,值,顺序);列表是有序的(元素有固定的位置--下标)
列表元素:任何python支持的类型的数据都可以作为列表,同一个列表的元素的类型可以不同
赋值语句不能作为列表元素
'''

2.获取元素

 # 2.1 获取单个元素
'''
 语法:列表[下标]
 什么是下标:下标又叫索引,代表元素在序列中的位置信息。
 下标值的范围有两种:
 a、元素从左往右对应的下标从0开始一次增加
 b、元素从右往左对应的下标是从-1开始一次减少
'''
heroes = ["鲁班七号" ,"后裔" ,"马可波罗" ,"虞姬","孙尚香"]
print(heroes[1])     # 后裔
print(heroes[-4])       # 后裔
print(heroes[2])        # 马可波罗
print(heroes[-3])           # 马可波罗

# 2.2 遍历(把元素一个一个取出来)
'''
方法一:直接获取元素
for 变量 in 列表:
    循环体
    
方法二:通过下标遍历个数
len(列表) - 获取列表长度(获取列表元素的个数)

for 变量 in range(len(列表)):
    循环体

'''

# 练习1:定义一个列表保存一个班所有学生的分数
# 1.求所有学生的总分
# 2.统计不及格学生的人数
scores = [45, 67, 89,90, 77, 23,50]
sum = 0
num = 0
for figure in scores: 				#法二:for index in range(len(scores)):
    sum += figure                              sum += scores[index]
    if figure < 60:                             if scores[index] < 60:
        num += 1                                    num += 1
print(sum)
print(num)


# 练习2:打印位置(下标)在偶数位上的所有元素
for index in range(0,len(scores),2):
    print(index, scores[index])
# 2.3 获取部分元素(列表切片) - 返回一个小列表
"""
列表[开始下标:结束下标:步长]  
步长为正:[开始下标, 结束下标) , 从前往后,每次下标增加步长    !!!!!!注意结束下标取不到
步长为负:[开始下标, 结束下标),从后往前,每次下标增加步长
"""
# 练习1:
heroes = ["鲁班七号" ,"后裔" ,"马可波罗" ,"虞姬","孙尚香"]
print(heroes[0:-1:1])   #  ['鲁班七号', '后裔', '马可波罗', '虞姬']
print(heroes[1:4:-1])  # []
print(heroes[-1:0:-2])   # ['孙尚香', '马可波罗']  !!!!!!注意结束下标取不到

# 1) 省略步长
# 列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]  

heroes = ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[-5:-2])        #['马可波罗', '虞姬', '孙尚香']
print(heroes[-1:2])         #[]


# 2) 省略开始下标
# 列表[:结束下标:步长]
# 列表[:结束下标]
# 如果步长为正:开始下标省,就从第一个元素开始往后取
# 如果步长为负:开始下标省,就从最后一个元素开始往前取
heroes = ["鲁班7号","后裔" ,"马可波罗", "虞姬","孙尚香","狄仁杰","百里守约"]
print(heroes[:4:3])         # "鲁班7号", "虞姬"
print(heroes[:-5:-2])       #"百里守约","孙尚香"


# 3) 省略结束下标  
# 列表[开始下标::步长]
# 列表[开始下标:]
# 步长为正:结束下标省略,从开始下标开始从前往后取到最后一个元素为止。
# 步长为负:结束下标省略,从开始下标开始从后往前取,取到第一个元素为止。
heroes = ["鲁班7号","后裔" ,"马可波罗", "虞姬","孙尚香","狄仁杰","百里守约"]
print(heroes[-3::-1])   # "孙尚香", "虞姬","马可波罗","后裔","鲁班7号"


# 4) 一起省
heroes = ["鲁班7号","后裔" ,"马可波罗", "虞姬","孙尚香","狄仁杰","百里守约"]
print(heroes[::2])   # ['鲁班7号', '马可波罗', '孙尚香', '百里守约']
print(heroes[:])    # ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[::-1])   # ['百里守约', '狄仁杰', '孙尚香', '虞姬', '马可波罗', '后裔', '鲁班7号']

3.增删

# 1.增 - 往列表中添加元素

# 1)列表.append(元素) - 在指定列表的最后追加一个指定的元素
# 2)列表.insert(下标,元素) - 在列表指定下标前插入指定元素 !!!!!!!!! 
movies = ['看不见的客人','肖生客的救赎']   
movies.insert(1,'星际穿越')   # ['看不见的客人', '星际穿越', '肖生客的救赎']
写法二:movies.insert(-1,'星际穿越')

# 2.删 - 删除列表中某个元素
# 1) 语法:del 列表[] - 删除列表中指定下标对应的元素(下标不能越界)
# a.删除指定变量
# b.删除列表中指定元素
nums = [10,1,2 ,32]
del nums[-1]
print(nums)     # [10, 1, 2]
# c.删除整个列表
del nums
# print(nums)  #用print会报错,因为已经删除了列表就不能在使用

# 2) 列表.remove(元素) - 删除列表中指定元素(如果删除元素有多个,删除第一个;如果指定元素不存在,会报错)
TVs = ['琅琊榜','破产姐妹','甄嬛传','庆余年']
TVs.remove("庆余年")
print(TVs)      # ['琅琊榜', '破产姐妹', '甄嬛传']

# 3)
# 列表.pop() - 取出列表中最后一个元素
# 列表.pop(下标) - 取出列表中指定下标对应的元素,并且返回
练习:
TVs = ['琅琊榜','破产姐妹','甄嬛传','庆余年','甄嬛传','甄嬛传']
del_item = TVs.pop()
n = TVs.pop(0)
print(TVs,del_item,n)       # ['破产姐妹', '甄嬛传', '庆余年', '甄嬛传'] 甄嬛传 琅琊榜

4.改-in操作

# 1 .改 - 修改元素的值
# 语法:列表[下标] = 值 - 将列表中指定对应的元素修改成指定的值
# 练习:已经列表scores,将列表中低于60分的成绩全部修改成60分
练习:
scores = [89, 9, 78, 23, 76, 99, 56, 66]
for index in range(len(scores)):
    if scores[index] < 60:
        scores[index] = 60
print(scores)       # [89, 60, 78, 60, 76, 99, 60, 66]
# 2.in 和 not in
# 值 in 列表 - 判断列表中是否存在指定值对应的元素
# 值 not in 列表 - 判断列表中是否不存在指定值对应的元素
subjects = ['高数','大物','c语言','毛概']
print('高数' in subjects)    #  True
print(['高数','大物'] in subjects)      # False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值