Python学习笔记之列表和成员运算符及列表相关方法详解


Posted in Python onAugust 22, 2019

本文实例讲述了Python学习笔记之列表和成员运算符及列表相关方法。分享给大家供大家参考,具体如下:

列表和成员运算符

列表可以包含我们到目前为止所学的任何数据类型并且可以混合到一起。

lst_of_random_things = [1, 3.4, 'a string', True] # 这是一个包含 4 个不同类型元素的列表
print(lst_of_random_things[0]) # 1

获取上述列表的第一个值和最后一个值

print(lst_of_random_things[0]) # 1
print(lst_of_random_things[len(lst_of_random_things) - 1]) # True

此外,你可以使用负数从列表的末尾开始编制索引,其中 -1 表示最后一个元素,-2 表示倒数第二个元素,等等

print(lst_of_random_things[-1]) # True
print(lst_of_random_things[-2]) # a string

列表切片的应用: 我们可以使用切片功能从列表中提取多个值。在使用切片功能时,务必注意,下限索引包含在内,上限索引排除在外, 最终返回的是一个新的列表

正常的用法:

lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[1:2]) # [3.4]

从列表的开头开始,也可以省略起始值

lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[:2]) # [1, 3.4]

要返回到列表结尾的所有值,可以忽略最后一个元素

lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[1:]) # [3.4, 'a string', True]

在列表里还是不在列表里?关键字 in 和 not in 返回一个布尔值, 表示某个元素是否存在于列表中,或者某个字符串是否为另一个字符串的子字符串

print('this' in 'this is a string') # True
print('in' in 'this is a string') # True
print('isa' in 'this is a string') # False
print(5 not in [1, 2, 3, 4, 6]) # True
print(5 in [1, 2, 3, 4, 6]) # False

列表的可变性和顺序

可变性是指对象创建完毕后,我们是否可以更改该对象。如果对象(例如列表或字符串)可以更改,则是可变的。但是,如果无法更改对象以创建全新的对象(例如字符串),则该对象是不可变的。

列表可变性测试:

my_lst = [1, 2, 3, 4, 5]
my_lst[0] = 'one'
print(my_lst) # ['one', 2, 3, 4, 5]

下面尝试修改字符串:

greeting = "Hello there"
greeting[0] = 'M'

尝试修改字符串,引发如下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

但可以修改字符串对象的地址:

greeting = "Hello there"
greeting = 'Hi there'
print(greeting) # Hi there

本节注意事项:对于你要使用的每种数据类型,你都需要注意两个事项:可变吗?有序吗?

列表和成员运算符[相关练习]

请使用列表索引根据整型变量 month 判断特定月份有多少天,并将该值存储在整型变量 num_days 中

month = 8
days_in_month = [31,28,31,30,31,30,31,31,30,31,30,31]
# use list indexing to determine the number of days in month
num_days = days_in_month[month - 1]
print(num_days)

请使用列表切片记法从此列表中选择列表中的最后三个元素。提示:切片可以使用负索引!

eclipse_dates = ['June 21, 2001', 'December 4, 2002', 'November 23, 2003',
        'March 29, 2006', 'August 1, 2008', 'July 22, 2009',
        'July 11, 2010', 'November 13, 2012', 'March 20, 2015',
        'March 9, 2016']
# TODO: Modify this line so it prints the last three elements of the list
print(eclipse_dates[-3:])

列表的常用方法

常用方法举例

  • len() 返回列表中的元素数量。
  • max() 返回列表中的最大元素。最大元素的判断依据是列表中的对象类型。数字列表中的最大元素是最大的数字。字符串列表中的最大元素是按照字母顺序排序时排在最后一位的元素。因为 max() 函数的定义依据是大于比较运算符。如果列表包含不同的无法比较类型的元素,则 max() 的结果是 undefined。
  • min() 返回列表中的最小元素。它是 max() 函数的对立面,返回列表中的最小元素。
  • sorted() 返回一个从最小到最大排序的列表副本,并使原始列表保持不变。
  • join() 将字符串列表作为参数,并返回一个由列表元素组成并由分隔符字符串分隔的字符串。
  • append() 实用方法 append() 会将元素添加到列表末尾。

方法实践举例之join()

new_str = "\n".join(["fore", "aft", "starboard", "port"])
print(new_str)

输出: 在此示例中,我们使用字符串 “\n” 作为分隔符,以便每个元素之间都有一个换行符。我们还可以在 .join 中使用其他字符串作为分隔符。以下代码使用的是连字符。

fore
aft
starboard
port

or

name = "-".join(["García", "O'Kelly"])
print(name)

输出:

García-O'Kelly

方法实践举例之append()

letters = ['a', 'b', 'c', 'd']
letters.append('z')
print(letters)

输出:

['a', 'b', 'c', 'd', 'z']

列表的常用方法[相关练习]

以下代码的输出是什么?

a = [1, 5, 8]
b = [2, 6, 9, 10]
c = [100, 200]
print(max([len(a), len(b), len(c)])) # 4
print(min([len(a), len(b), len(c)])) # 2

以下代码的输出是什么?

names = ["Carol", "Albert", "Ben", "Donna"]
print(" & ".join(sorted(names))) # Albert & Ben & Carol & Donna

以下代码的输出是什么?

names = ["Carol", "Albert", "Ben", "Donna"]
names.append("Eugenia")
print(sorted(names)) # ['Albert', 'Ben', 'Carol', 'Donna', 'Eugenia']

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
python的类方法和静态方法
Dec 13 Python
python去除所有html标签的方法
May 05 Python
Django 路由控制的实现代码
Nov 08 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 Python
python blinker 信号库
May 04 Python
Django上线部署之IIS的配置方法
Aug 22 #Python
对python中UDP,socket的使用详解
Aug 22 #Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 #Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 #Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 #Python
python爬虫增加访问量的方法
Aug 22 #Python
Python中字典与恒等运算符的用法分析
Aug 22 #Python
You might like
php str_pad 函数使用详解
2009/01/13 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
详解Django中的form库的使用
2015/07/18 Python
python复制文件到指定目录的实例
2018/04/27 Python
Django对models里的objects的使用详解
2019/08/17 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
计算机网络专业个人的自我评价
2013/10/17 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
财务部经理岗位职责
2014/02/03 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
新员工考核评语
2014/12/31 职场文书
硕士学位申请报告
2015/05/15 职场文书
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL