当前位置:   article > 正文

Python 主线任务之列表和操作列表,知其然知其所以然【玩转Python】

Python 主线任务之列表和操作列表,知其然知其所以然【玩转Python】

主线任务

主线任务之数据类型已进行66.6%,今日主线任务为“列表和操作列表”的了解和掌握。了解“列表”是什么的同时也不要忽略“怎么用”。即"知其然知其所以然",方能达到学习的更优效果。

接下来让我们一起开启今日份的Python的主线任务。

数据类型

列表

介绍

列表由一系列按特定顺序排列的元素组成。

  1. word_list = ['i', 'love', 'python']
  2. print(word_list)
  3. >>> ['i', 'love', 'python']

笔记

使用列表中的各个值

使用f字符串根据列表中的值来创建消息。

  1. word_list = ['i', 'love', 'python']
  2. msg=f"{word_list[0].title()} {word_list[1]} {word_list[2].title()}."
  3. print(msg)
  4. >>> I love Python.
在列表末尾添加元素

使用方法 append() 可以将元素'very'、'much'依次添加到列表末尾。

  1. word_list = ['i', 'love', 'python']
  2. word_list.append('very')
  3. word_list.append('much')
  4. print(word_list)
  5. >>> ['i', 'love', 'python', 'very', 'much']
在列表中任意位置插入元素

使用方法 insert() 可在列表的任何位置添加新元素。

insert() 包含两个入参:index (插入位置)和 element (插入元素)。

  1. word_list = ['i', 'love', 'python']
  2. word_list.insert(1,'really')
  3. print(word_list)
  4. >>> ['i', 'really', 'love', 'python']
使用del语句删除任意位置元素

使用 del 语句,可以删除想要删除的确定位置的元素。

  1. word_list = ['i', 'just', 'love', 'python']
  2. del word_list[1]
  3. print(word_list)
  4. >>> ['i', 'love', 'python']
使用方法 pop() 删除元素

方法 pop() 可以删除列表末尾的元素,并让你能够接着使用它。

  1. word_list = ['i', 'love', 'python', 'not relly']
  2. word_pop = word_list.pop()
  3. print(word_list)
  4. >>> ['i', 'love', 'python']
  5. print(word_pop)
  6. >>> not relly

方法 pop() 也可以删除列表中任意位置的元素,只需在圆括号中指定要删除元素的索引即可。

  1. word_list = ['i', 'just', 'love', 'python']
  2. word_pop = word_list.pop(1)
  3. print(word_list)
  4. >>> ['i', 'love', 'python']
  5. print(word_pop)
  6. >>> just
根据值删除元素

方法 remove() 可以根据要删除的元素的值删除对应元素。

  1. word_list = ['i', 'just', 'love', 'python']
  2. word_list.remove('just')
  3. print(word_list)
  4. >>> ['i', 'love', 'python']

注意,对于不存的值,使用 remove() 进行删除会报错。

  1. word_list.remove('so')
  2. >>> ValueError: list.remove(x): x not in list
使用方法 sort() 对列表永久排序

方法 sort() 可以对列表进行排序,从小到大,且是永久性地修改列表元素的排列顺序。

  1. sort_list = [2, 11, 8, 55, 6, 7, 23, 33, 5, 6]
  2. sort_list.sort()
  3. print(sort_list)
  4. >>> [2, 5, 6, 6, 7, 8, 11, 23, 33, 55]

如果想得到从大到小排序,只需向 sort() 方法传递参数 reverse=True 即可。

  1. sort_list.sort(reverse=True)
  2. >>> [55, 33, 23, 11, 8, 7, 6, 6, 5, 2]
使用函数 sorted() 对列表临时排序

方法 sorted() 可以实现特定顺序显示列表元素,即保留列表元素原来的排列顺序,同时以特定的顺序呈现它们。

  1. sort_list = [2, 11, 8, 55, 6, 7, 23, 33, 5, 6]
  2. print(sorted(sort_list))
  3. >>> [2, 5, 6, 6, 7, 8, 11, 23, 33, 55]
  4. print(sort_list)
  5. >>> [2, 11, 8, 55, 6, 7, 23, 33, 5, 6]
  6. print(sort_list[1])
  7. >>> 11

方法 sorted() 包括三个参数:

iterable:表示指定的序列;

key:可以自定义排序规则;

reverse:指定以升序(False,默认)还是降序(True)进行排序。

  1. word_list = ['i', 'love', 'python', 'so', 'much']
  2. print(sorted(word_list, key=lambda x: len(x)))
  3. >>> ['i', 'so', 'love', 'much', 'python']
倒着打印列表

方法 reverse() 可以反转列表元素的排列顺序。

  1. word_list = ['i', 'love', 'python']
  2. word_list.reverse()
  3. print(word_list)
  4. >>> ['python', 'love', 'i']

如果还想恢复原来的列表顺序,只需要对列表再调用一次 reverse()

  1. word_list.reverse()
  2. print(word_list)
  3. >>> ['i', 'love', 'python']

练一练

练习3-4:嘉宾名单

如果你可以邀请任何人共进晚餐(无论是故去的还是在世的),你会邀请哪些人?请创建一个列表,其中包含至少三个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。

  1. name_list = ['zhang san', 'shang ying yan', 'wang wu', 'ning zai chun', 'ning jie']
  2. print("花径不曾缘客扫,蓬门今始为君开。")
  3. print(f"欢迎,{name_list[1].title()}")
  4. print(f"欢迎,{name_list[3].title()}")
  5. print(f"欢迎,{name_list[4].title()}")
  6. >>> 花径不曾缘客扫,蓬门今始为君开。
  7. >>> 欢迎,Shang Ying Yan
  8. >>> 欢迎,Ning Zai Chun
  9. >>> 欢迎,Ning Jie
练习3-4:添加嘉宾

你刚找到了一个更大的餐桌,可容纳更多的嘉宾。向嘉宾名单中间位置和末尾分别添加一位嘉宾。

打印一系列消息,向名单中的每位嘉宾发出邀请。

  1. name_list = ['zhang san', 'shang ying yan', 'wang wu', 'ning zai chun', 'ning jie']
  2. name_list.insert(4,'lily')
  3. name_list.append('chai popo')
  4. print("花径不曾缘客扫,蓬门今始为君开。")
  5. print(f"欢迎,{name_list[1].title()}")
  6. print(f"欢迎,{name_list[3].title()}")
  7. print(f"欢迎,{name_list[4].title()}")
  8. print(f"欢迎,{name_list[5].title()}")
  9. print(f"欢迎,{name_list[6].title()}")
  10. >>> 花径不曾缘客扫,蓬门今始为君开。
  11. >>> 欢迎,Shang Ying Yan
  12. >>> 欢迎,Ning Zai Chun
  13. >>> 欢迎,Lily
  14. >>> 欢迎,Ning Jie
  15. >>> 欢迎,Chai Popo

操作列表

笔记

遍历整个列表

使用 for 循环打印每一个好友的名字:

  1. name_list = ['lily', 'shang ying yan', 'chai paopao', 'ning zai chun', 'ning jie']
  2. for name in name_list:
  3. print(name)
  4. >>> lily
  5. >>> shang ying yan
  6. >>> chai paopao
  7. >>> ning zai chun
  8. >>> ning jie

注意,位于 for 语句后面且属于循环组成部分的代码行,一定要缩进。否则,会报错:

  1. for name in name_list:
  2. print(name)
  3. >>> IndentationError: expected an indented block
使用 range() 创建数字列表

函数 range() 可以生成一系列数,可以使用 for 循环进行打印。

  1. num_list_2 = range(1, 6)
  2. for num2 in num_list_2:
  3. print(num2)
  4. >>> 1
  5. >>> 2
  6. >>> 3
  7. >>> 4
  8. >>> 5

注意,使用 range() 方法生成的序列,包含开始的数字,但是不包含结尾的数字。

也可以通过索引得到对应的元素。

  1. print(num_list_2[0])
  2. >>> 1

还有一种创建数字列表的方式,使用函数 list() range() 的结果直接转换为列表。

  1. num_list = list(range(1, 6))
  2. print(num_list)
  3. >>> [1, 2, 3, 4, 5]

我们再试一下循环:

  1. num_list = list(range(1, 6))
  2. for num1 in num_list:
  3. print(num1)
  4. >>> 1
  5. >>> 2
  6. >>> 3
  7. >>> 4
  8. >>> 5
range() 和 list() 的区别

对比一下二者的区别:

1、 range() 生成的序列类型很固定必须是整数,list() 则不需要。

  1. word_list = list('pyhon1')
  2. print(word_list)
  3. >>> ['p', 'y', 'h', 'o', 'n', '1']

2、 range() 函数还有第三个参数-step,可以实现间隔数列。

  1. num_list_2 = range(1, 11, 2)
  2. print(list(num_list_2))
  3. >>> [1, 3, 5, 7, 9]
对数字列表执行简单的统计计算
  1. num_list_2 = range(1, 11)
  2. print(max(num_list_2))
  3. >>> 10
  4. print(min(num_list_2))
  5. >>> 1
  6. print(sum(num_list_2))
  7. >>> 55
列表解析
  1. squares = [value**2 for value in range(1, 11)]
  2. print(squares)
  3. >>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

上面的代码中,首先生成了一个数列,然后循环数列得到每个元素 value,将 value 的值提供给计算平方值的表达式,最终得到所有值平方之后的数列。

练一练

练习4-7:3的倍数

创建一个列表,其中包含3~30能被3整除的数,再使用一个for循环将这个列表中的数打印出来。

  1. num_list = range(3, 31, 3)
  2. for num in num_list:
  3. print(num)
  4. >>> 3
  5. >>> 6
  6. >>> 9
  7. >>> 12
  8. >>> 15
  9. >>> 18
  10. >>> 21
  11. >>> 24
  12. >>> 27
  13. >>> 30

练习4-9:立方解析

使用列表解析生成一个列表,其中包含前10个非0整数的立方。

  1. num_list = [(value ** 3) for value in range(1, 11)]
  2. for num in num_list:
  3. print(num)
  4. >>> 1
  5. >>> 8
  6. >>> 27
  7. >>> 64
  8. >>> 125
  9. >>> 216
  10. >>> 343
  11. >>> 512
  12. >>> 729
  13. >>> 1000

总结

以上,就是我在 Python 学习中,记录的关于数据类型的知识点,同时对于部分练习题的作答。

此外,还增加了一些容易被忽视的功能点和对比,额外查了其他资料,通过一个点联想到相关点,这样一来加深了当前功能的印象。

读完本文的主要收获有:

1、对于列表,即学习了列表是什么以及如何使用其中的元素、如何定义列表以及如何增删元素、如何对列表进行排序,又学习了如何操作列表元素、如何遍历整个列、如何解析列表处理其中的元素。


作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/215647?site
推荐阅读
相关标签