iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python3学习笔记06——列表创建及
  • 654
分享到

Python3学习笔记06——列表创建及

学习笔记列表 2023-01-31 02:01:39 654人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

在python中使用for循环是,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。 那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterabl

python中使用for循环是,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。
那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

from collections.abc import Iterable

r=isinstance('ABC',Iterable) # str是否可迭代

print(r)

结果:
TRUE
表明是可迭代对象。

#用循环生成列表

L=[]
for x in range(1,11):
    L.append(x*x)

print(L)

#列表生成式

print([x*x for x in range(1,11)])

#for 循环后边还可以加上if判断
#比如只生成偶数的平方

print([x*x for x in range(1,11) if x%2==0])

#还可以使用两层循环,生成全排列

print([m+n for m in 'ABC' for n in 'XYZ'])

#把一个list中的所有的字符串变成小写:

L=['Hello','World','IBM','Apple']
print([s.lower() for s in L])

运行结果依次为:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[4, 16, 36, 64, 100]
[‘AX’, ‘AY’, ‘AZ’, ‘BX’, ‘BY’, ‘BZ’, ‘CX’, ‘CY’, ‘CZ’]
[‘hello’, ‘world’, ‘ibm’, ‘apple’]

如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以里欸报生成式会报错。
L= L=[‘Hello’,‘World’,18,‘IBM’,‘Apple’]
此时,可使用内建的isinstance函数判断一个变量是不是字符串:

#list中既包含字符串,有包含整数

L=['Hello','World',18,'Apple',None]
print([s.lower() for s in L if isinstance(s,str) ])

生成器:
不创建完整的list,一边循环一边计算的机制,成为生成器:generator,此方法可节省大量空间。

要创建一个generator,有很多种方法。第一种很简单,只要把一个列表生成式的【】改成(),就创建了一个generator():

g=(x*x for x in range(10))
print(g)

输出结果:
<generator object at 0x0000010EA9D3FD68>

generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多元素时,抛出StopIteration的错误。
当然,不断调用next(g)这种打印返回值的方法太变态了,正确的方法是使用for循环,因为generator也是可迭代对象:

第二种方法:用函数生成
斐波拉契数列的推算规则,可以从第一个元素开始,推算出后续任意的元素,这种逻辑其实非常类似generator,也就是说,斐波拉契函数和generator仅一步之遥。要把fib函数变成generator,只需要把print(b)改为yield b 就可以了。

def fib(max):
    n,a,b=0,0,1
    while n<max:
        yield b
        a,b=b,a+b
        n=n+1
    return 'done'

print(fib(6))

这里最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

#杨辉三角

def yanghui(t):
    print([1])
    line=[1,1]
    print(line)
    for i in range(2,t):
          r=[]
          for i in range(0,len(line)-1):
              r.append(line[i]+line[i+1])
          line=[1]+r+[1]
          print(line)
print(yanghui(6))

输出结果:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
None

--结束END--

本文标题: Python3学习笔记06——列表创建及

本文链接: https://www.lsjlt.com/news/185258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python3学习笔记06——列表创建及
    在Python中使用for循环是,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。 那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterabl...
    99+
    2023-01-31
    学习笔记 列表
  • python学习笔记---列表
    列表属于python序列中的一种,属于可变序列,支持插入、删除和替换操作。1、定义列表:2、列表中元素的操作:    获取索引的元素 l[index]:    删除列表中指定索引的元素 del(l[index]):    修改指定元素l[i...
    99+
    2023-01-31
    学习笔记 列表 python
  • python3 学习笔记
    本人很少写 python 代码, 一般都是用 go 的, 去年时用 python 写过一些收集系统信息的工具, 当时是边看手册边写的. 如今又要用 python 来写一个生成 xlsx 的工具, 就又需要查看手册了, 至于为什么不用 g...
    99+
    2023-01-31
    学习笔记
  • python3学习笔记
    好久不用python,努力捡起来ing python3语法 字符串 repr()把其他类型变量转换为字符串 ord()把单个字符转换为相应的ascii码 int()把其他进制的“字符串”转换为十进制 int(str,n...
    99+
    2023-01-31
    学习笔记
  • 「学习笔记」循环、列表
    while循环与for循环    (一)while循环 结构: while: 循环体    (二)for循环 for 目标 in 表达式: 循环体  实例: favourite = 'fish' for i ...
    99+
    2023-01-30
    学习笔记 列表
  • python3学习笔记(2)----p
    1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。等号(=)用来给...
    99+
    2023-01-31
    学习笔记
  • Python3学习笔记01-Python
    1. 下载 python-3.6.3 下载地址:https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe安装 python-3.6.3安装的第一个界面注意选中“Add P...
    99+
    2023-01-31
    学习笔记 Python
  • python3学习笔记(1)----基
    一、python3的基本语法 1、缩进统一(1个tab或者4个空格)。 for i in range(10): print (i) 2、标识符的第一个字母必须是字母(大小写字母)或者下划线,其他部分可以有字母和...
    99+
    2023-01-31
    学习笔记
  • Python学习笔记(1)---列表和元
    什么是列表?列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。列表的介绍一、更新列表1.元素赋值>>> a=[1,3,4,5]>>> a[1]=10 #改变a中第二个值为10&...
    99+
    2023-01-31
    学习笔记 列表 Python
  • Python3学习笔记(urllib模块
    1.基本方法urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)-    ...
    99+
    2023-01-31
    学习笔记 模块 urllib
  • python3学习知识点笔记
    class Class_name(object): # 声明类Class_name,继承自objectclass Class_name: #不显示继承自object,创建类Class_nameclass Fruit: #创建水果类     ...
    99+
    2023-01-31
    知识点 笔记
  • python3学习之列表
    列表:L.append(object)   追加备注:append将obj作为一个整体追加,无论obj是字符串、数字、字典、列表等,当是字典时全部插入,跟L.extend(iterable) 不同test = [1,2,3,4,5]test...
    99+
    2023-01-31
    列表
  • Python3学习笔记之is == in
    意义 ==比较的是两个对象的值是否相等,比较常用 a = [1, 2, 3] b = [1, 2, 3] print(a == b) #True is比较的是两个对象是不是同一个实例对象,它们的内存地址是否相同...
    99+
    2023-01-31
    学习笔记
  • 学习Python3的精品笔记
    石墨文档地址: https://shimo.im/docs/fooucf8wa8EtAB32/ 「Python学习笔记」 ...
    99+
    2023-01-31
    笔记 精品
  • Python3学习笔记:Python中的
    一、格式 变量 = 对象 二、简述 Python为动态解释性语言,在赋值操作时,并不需要像静态编译类型语言C、C++或Java一样,在使用变量前,需声明变量的类型。在Python中,类型是在运行过程中自动决定的,而不是通过代码声...
    99+
    2023-01-31
    学习笔记 Python
  • C++学习笔记之初始化列表
    目录一、用初始化列表初始化对象1.初始化列表用法2.初始化列表特性二、explicit关键字1.内置类型的隐式转换2.如何避免单参构造函数初始化发生隐式类型转换三、匿名对象1.匿名对...
    99+
    2023-05-17
    c++ 初始化列表 如何初始化列表 c++ 初始化
  • Python学习笔记8——列表、字典、元
    参考书籍:《Learning_Python_5th_Edition.pdf》,一本英文书呢,我上传到百度网盘吧,请点击这里,密码是:kym3 Lists 列表 The Python list object is the most gene...
    99+
    2023-01-30
    字典 学习笔记 列表
  • 学习笔记-小甲鱼Python3学习第十讲
    创建列表创建一个普通列表number = [1,2,3,4,6]创建一个混合列表mix= [1,3.14,'abc','张三',[5,6,7]]创建一个空列表empty = []向列表中添加元素:append(),extend(),inse...
    99+
    2023-01-31
    甲鱼 学习笔记 第十讲
  • 学习笔记-小甲鱼Python3学习第十七
    优秀的东西永远是经典的,经典的东西永远是简单的,不是说复杂不好,而是能够把复杂的东西简单化,堪称经典。为了使代码程序实现更为简单,我们把代码分为越来越小的组成部分。分三大部分实现:函数、对象、模块python中定义函数使用关键字def>...
    99+
    2023-01-31
    甲鱼 学习笔记
  • 学习笔记-小甲鱼Python3学习第八讲
    按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。使用if 条件:...elif 条件:...else...循环fenshu0 = input('请输...
    99+
    2023-01-31
    甲鱼 学习笔记 第八讲
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作