Python基础学习05

列表

列表就有顺序的数据的组合

说到顺序,就能想到字符串中提到的序列(suqence);列表同样有序列,而且他的序列与字符串一致!如下图

创建列表

# 1、创建一个空列表
list1 = []
# # type是内置函数,查看数据的类型
print(‘list1的数据类型为:‘,type(list1))
print(‘list1 = ‘,list1)

# 创建存在数据的列表
list2 = [33]
print(‘list2的数据类型为:‘,type(list2))
print(‘list2 = ‘,list2)

# 创建存在多数据的列表
list3 = [3,1,5,7,9]
print(‘list3的数据类型为:‘,type(list3))
print(‘list3 = ‘,list3)

输出的结果如下:

list1的数据类型为: <class ‘list‘>
list1 =  []
list2的数据类型为: <class ‘list‘>
list2 =  [33]
list3的数据类型为: <class ‘list‘>
list3 =  [3, 1, 5, 7, 9]

列表中的数据可包含python中所有的数据类型

l1 = ‘我是变量‘
list4 = [1,1.1,l1,‘字符串‘,True,1+1,[4/2,3],]
print(‘list4的数据类型为:‘,type(list4))
print(‘list4 = ‘,list4)

输出结果如下:

list4的数据类型为: <class ‘list‘>
list4 =  [1, 1.1, ‘我是变量‘, ‘字符串‘, True, 2, [2.0, 3]]

列表的sequence(序列)操作

上文有提到,列表同字符串一样,是有序列的,存在序列,就支持切片操作!

l1 = ‘我是变量‘
list5 = [1,1.1,l1,‘字符串‘,True,1+1,[4/2,3],]
print(‘list5的值:‘,list5)
# 查看列表中某一值
print(‘list5[4]的值:‘,list5[4])

# 查看列表中字符串中某一元素
print(‘list5[3][0]的值:‘,list5[3][1])
# 查看列表中的列表中某一元素
print(‘list5[-1][1]的值:‘,list5[-1][1])

# 切片操作
# 再次强调,切片操作所切内容左含右不含!
print(‘list5[1:4]的值:‘,list5[1:4])
# 切片操作可以设置步长,且步长默认为1
print(‘list5[1:4]的值:‘,list5[1:4:2])
# 下标可以超出列表长度
print(‘list5[4:11]的值:‘,list5[4:11])

# 所切的下标值可以为空,即左边下标值默认为0,右边默认值为最大下标+1
print(‘list5[:]的值:‘,list5[:])
print(‘list5[1:]的值:‘,list5[1:])
print(‘list5[:4]的值:‘,list5[:4])

# 切片同样可以对负下标进行操作
print(‘list5[-5:-1]的值:‘,list5[-5:-1])

输出结果如下:

[1, 1.1, ‘我是变量‘, ‘字符串‘, True, 2, [2.0, 3]]

list5[4]的值: True

list5[3][0]的值: 符
list5[-1][1]的值: 3

list5[1:4]的值: [1.1, ‘我是变量‘, ‘字符串‘]
list5[1:4:1]的值: [1.1, ‘字符串‘]
list5[4:11]的值: [True, 2, [2.0, 3]]

list5[:]的值: [1, 1.1, ‘我是变量‘, ‘字符串‘, True, 2, [2.0, 3]]
list5[1:]的值: [1.1, ‘我是变量‘, ‘字符串‘, True, 2, [2.0, 3]]
list5[:4]的值: [1, 1.1, ‘我是变量‘, ‘字符串‘]

list5[-5:-1]的值: [‘我是变量‘, ‘字符串‘, True, 2]

切片操作生成的是一个全新的列表

# 这里引用一个内置函数id(),作用是显示出一个变量或者数据的唯一确定编号
# 例如:
a = 1
b = ‘1‘
print(‘a的id为:‘,id(a))
print(‘b的id为:‘,id(b))

c = a
print(‘c的id为:‘,id(c))

输出结果如下:

a的id为: 1467867920
b的id为: 18602144

c的id为: 1467867920

以下对切片操作进行校验,生成的列表是否为新列表

# 通过id可以直接判断出分片是从新生成了一份数据还是使用的同一份数据
list6 = [3,‘3‘,101,5.5]
list7 = list6[:]
list8 = list7

# 如果两个id值一样,则表明分片产生的列表是使用的同一地址同一份数据
# 否则,则表明切片是从新生成了一份数据,即一个新的列表,然后把数值拷贝到新列表中
print(‘list6的id为:‘,id(list6))
print(‘list7的id为:‘,id(list7))
print(‘list8的id为:‘,id(list8))

输出结果如下:

list6的id为: 47179336

list7的id为: 47179416

list8的id为: 47179416

可以看到list7是由list6切片而来,然而id(list6) != id(list7)

原文地址:https://www.cnblogs.com/wilson-5133/p/10350997.html

时间: 2024-11-03 03:25:56

Python基础学习05的相关文章

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

python基础学习日志day5-各模块文章导航

python基础学习日志day5---模块使用 http://www.cnblogs.com/lixiang1013/p/6832475.html python基础学习日志day5---time和datetime模块 http://www.cnblogs.com/lixiang1013/p/6848245.html python基础学习日志day5---random模块http://www.cnblogs.com/lixiang1013/p/6849162.html python基础学习日志da

Python 基础学习 网络小爬虫

<span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imgli

Python基础学习(九)

Python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin

python基础学习08(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #异常 """ NameError: 尝试访问一个未申明的变量 ZeroDivisionError:  除数为零 SyntaxError: 解释器语法错误 IndexError: 请求的索引超出序列范

Python基础学习(十)

Python I/O模型 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 概念说明 在进行解释之前,首先要说明几个概念: 用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件

python基础学习12(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #python class #面向对象编程oop思想,3个特性:封装.继承.多态,在其他方面的功能,比如重载,模拟等,也可以自定义自己需要的类 #在python中,面向对象主要2个:类和类实例 #类与实例 #类与实例有关

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo