美文网首页
2018-12-29day6学习总结

2018-12-29day6学习总结

作者: Little茂茂 | 来源:发表于2018-12-29 21:48 被阅读0次
1. 什么是列表(list)

列表是python提供的容器型数据类型。可变并且有序的。
可变 - 列表中的每个元素的值可变,列表的长度可变,列表中元素的顺序可变。(支持增删改)
有序 - 每个元素可以通过下标来确定位置。

2. 列表的字面量:通过[]括起来,里面有多个元素,每个元素用逗号隔开

[1,2,3]
[10,'abc',True]
num=100;[num,200]
[] -- 空列表

注意:python中列表的元素的类型可以是任何类型;并且同一个列表中不同元素的类型可以不一样

scores = [90, 89, 100, 67]
print(scores)

任何类型的数据都可以作为列表的元素

list1 = [90, 18.2, 'abc', True, [1, 2, 3], {'a': 10}, lambda x: 2*x]
print(len(list1))

list2 = [
    90,
    18.2,
    'abc',
]

a = 10
list3 = [a, 20]
print(list3)

3. 获取列表元素(和字符串获取字符的语法一样)
a. 获取单个元素

列表[下标] - 获取下标中指定下标对应的元素

list1 = [10, 20, 30]
print(list1[0], list1[-1])
b.获取部分元素(切片)

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

注意:取不到的时候,结果是空列表

movies = ['毒液', '功夫熊猫', '肖申克的救赎', '这个杀手不太冷', '拯救大兵瑞恩']
print(movies[1:3])
print(movies[1:5:2])
print(movies[3:-3:-1])
print(movies[3:-3:1])
print(movies[:2])
print(movies[2:])
print(movies[::-1])     # 列表中的元素倒序
c. 一个一个的取出所有元素(遍历)

可以使用for循环直接遍历列表拿到每个元素(操作元素的时候和下标无关)
可以通过遍历列表中列表元素的下标来拿到每个元素(操作元素的时候和下标有关)

# 直接遍历
for item in movies:
    print(item)
# 通过下标来遍历
for index in range(len(movies)):
    print('', index)
    print(movies[index])

练习:统计一个班的学生成绩,存到一个列表中。求整个班的学生的平均成绩。
[90,89,80,70,98,67]
打印出平均成绩

count=0
sum=0
for item in [90,89,80,70,98,67]:
    sum+=int(item)
    count+=1
print('这个班的平均成绩为%d'%(sum/count))
4. 增(添加列表元素)
a. append

列表.append()元素 - 在指定的列表的最后添加指定的元素(这个操作不会产生新的列表)

b. insert

列表.insert(下标,元素) - 在指定的下标“前”插入指定的元素

animes=['海贼王','火影忍者','一人之下','海贼王','秦时明月','画江湖']
animes.append('一拳超人')
print(animes)

animes.insert(2, '犬夜叉')
print(animes)

animes.insert(0, '进击的巨人')
print(animes)
5. 删(删除元素)
a. del

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

注意:a.del是python的关键字,可以用它删除任何数据
b.下标不能越界会报错

b. remove

列表.remove(元素) - 删除列表中第一个指定元素

注意:被删除的元素在列表中必须是存在的否则会报错

c. pop

列表.pop() - 将列表中最后一个元素从列表中取出,会返回取出来的元素
列表.pop(下标) - 将列表中指定下标对应的元素从列表中取出,会返回取出来的元素

# del的使用
del animes[-2]
print(animes)

# remove的使用
animes.remove('海贼王')
print(animes)

# pop的使用
animes.pop()
del_item = animes.pop()
print(animes, del_item)

animes.pop(0)
del_item = animes.pop()
print(animes, del_item)

练习:统计一个班的学生的年龄(控制台不断输入年龄值,直到输入end为止),然后删除所有年龄小于18岁的
[18,20,16,15,23]——>[18,20,23]

age = input('请输入学生年龄:')
list1 = []
while age != 'end':
    list1.append(age)
    age = input('请输入学生年龄:')
print(list1)
for item in list1:
    if int(item) < 18:
        list1.remove(item)
print(list1)
ages=[]
# 产生年龄
age = input('年龄')
while age != 'end':
    # 输入一个年龄就往列表里添加一个
    ages.append(int(age))
    # 输入下一个年龄
    age = input('年龄')
坑一:遍历列表删除部分元素,删不全!——遍历的时候对原列表切片[:]

ages=[12,13,20,18,30]
age=12 12<18:ages.remove(12)
ages=[13,20,18,30]
age=20 20<18
age=18 18<18
age=30 30<18

for age in ages[:]:  # [:]切片产生新列表新地址,这样可以遍历新列表来达到遍历原列表所有元素的效果,
    if age < 18:
        ages.remove(age)
print(ages)

将小于18岁的拎出来,存在一个新的列表中

ages = [12, 13, 20, 18, 30]
new_ages=[]    # 保存被删除的元素
index=0
while index<len(ages):
    age=ages[index]
    if age<18:
        del_item=ages.pop(index)
        new_ages.append(del_item)
    else:
        index+=1   # 不需要删除的时候下标才增加
print(ages,new_ages)
坑二:通过下标遍历列表,删除元素的时候,下标越界和元素获取不全

解决办法:下标对应的元素需要删除,下标值不动;不会删除的下标加1

6. 改(修改元素的值)

列表[下标]=新值 —— 修改列表中指定下标对应的值

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

练习:有一个列表中保存的是学生的成绩,要求将列表中成绩小于60分的改成'下一个班见'并且统计下一个班见的学生的个数

scores = [90, 78, 50, 77, 23, 82, 45]
count = 0
for index in range(len(scores)):
    if scores[index] < 60:
        scores[index] = '下一个班见'
        count += 1
print(scores, count)
7. 相关运算:+、*

列表1+列表2 - 将两个列表中的元素合并在一起产生一个新的列表
列表*N - 列表中的元素重复N次,产生一个新列表

8. 支持比较运算

比较大小的原理和字符串差不多

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

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

print([1, 2, 3, 4] > [2, 3])       # False
print([10, 20, 2] > [10, 3])      # True
9. in / not in

元素 in 列表 - 判断列表中是否存在指定的元素
元素 not in 列表

print([1, 2] in [1, 2, 3])    # False
print([1, 2] in [[1, 2], 'abc', 90])       # True
print('abc' in [[1,2], 'abc', 90])       # True
10. len

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

print(len([[1,'a'], 2, '100', True]))
11. list

list(列表) - 将其他数据转换成列表;只有序列才可以转换成列表并且所有的序列都 可以转换成列表,转换的时候就是将序列中所有的元素转换成列表的元素
序列:字符串、range、列表、字典、元祖、集合、迭代器、生成器

# list = 10    注意:不能用python给我们提供的类型的名字来命名,否则会有隐患
list1 = list('hello')
print(list1)

list2 = list(range(11, 21))
print(list2)
12. 序列的其他方法

max(序列):获取序列中最大的元素
min(序列):获取序列中最小的元素
sum(序列):求序列中所有元素的和

注意:以上三个方法,要求序列中的元素类型必须一致,并且这个类型支持比较运算和加法

运算(一般是数字序列用)

print(max([19, 10, 9, 76, 29]))
print(min([19, 10, 9, 76, 29]))
print(sum([19, 10, 9, 76, 29]))
print(sum(range(101)))

Python中两个变量互换

a,b=b,a

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

例如isinstance(a,int)——>判断a是否是整型

原列表去重,可以使用列表.count(元素)

  1. list.append(obj)在列表末尾添加新的对象
  2. list.count(obj)统计某个元素在列表中出现的次数
  3. list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
  4. list.index(obj)从列表中找出某个值第一个匹配项的索引位置
  5. list.insert(index,obj)将对象插入列表
  6. list.pop([index=-1]])移除列表中的第一个元素(默认最后一个元素),并且返回该元素的值
  7. list.remove(obj)移除列表中某个值的第一个匹配项
  8. list.reverse()反向列表中元素
  9. list.sort(cmp=None,key=None,reverse=False)对原列表进行排序
  10. list.clear()清空列表
  11. list.copy()复制列表

相关文章

  • 2018-12-29day6学习总结

    1. 什么是列表(list) 列表是python提供的容器型数据类型。可变并且有序的。可变 - 列表中的每个元素的...

  • kafka学习系列

    Kafka学习总结(一)——Kafka简介 Kafka学习总结(二)——Kafka设计原理 Kafka学习总结(三...

  • 习惯

    好的学习习惯,才能有效的学习,每天有计划的去学习,每天都要有总结,总结做过的事情,总结学到的东西,总结学习的方法,...

  • 2018-12-29Day6列表

    1.什么是列表(list) 列表是python提供的容器型数据类型。可变并且有序的可变 - 列表中的每个元素的值可...

  • 要做就做第一名

    前几天刚学会了一个学习的公式:体验→感受→分享→总结。 生活要学会总结,总结是最好的学习,可以说没有总结的学习不叫...

  • GNU Make / Makefile 学习资料

    GNU Make学习总结(一)GNU Make学习总结(二)这篇学习总结,从一个简单的小例子开始,逐步加深,来讲解...

  • java基础参考资料

    JavaWeb学习总结(一)——JavaWeb开发入门 JavaWeb学习总结(二)——Tomcat服务器学习和使...

  • 2018年2月计划

    1. 课程学习,以及总结笔记 《关系课程》学习50节,总结笔记。 《中国史纲》学习50节,总结4篇笔记。 《pyt...

  • 跟着麦子学英语(一)

    学习,总结,在学习! 这也许就是学习的过程吧!学习起来了,总结经验,然后推到,在重新开始学习! ...

  • 《Thinking in UML》学习总结

    《Thinking in UML》学习总结 @(总结)[思考|学习|记录] @[toc] 简要 最近看完了这本书,...

网友评论

      本文标题:2018-12-29day6学习总结

      本文链接:https://www.haomeiwen.com/subject/gaxmlqtx.html