一.列表

1)列表介绍

列表是Python内置的一种数据类型。

>一组有序项目的集合(从第一个成员序号为0开始依次递增排序)
>可变的数据类型(可进行增删改查)
>列表中可以包含任何数据类型,也可包含另一个列表(可任意组合嵌套)
>列表是以方括号“ []”包围的数据集合,不同成员以“ ,”分隔
>列表可通过序号访问其中成员

2)列表的基本操作

"""声明和创建列表"""

L = []  # 创建一个空列表
L = [1, 2, 'hank', 4] # 通过将不同数据类型的数据用中括号括起来创建一个列表
L = list('hank') # 通过list()方法将字符串转换为['h', 'a', 'n', 'k']列表
L = list(range(4)) # 或者将能形成序列的数据转化为列表 L[0] # 通过下标访问成员
"""增加元素"""

# 追加一个任意类型的成员append
L = [1, 2, 3]
L.append('hank') # 将一个成员追加到L列表末尾:[1, 2, 3,'hank'].其他数据类型也一样 # 插入一个成员insert
L = [1, 2, 3]
L.insert(1, 'hank') # 表示在1号位置前插入‘hank’:[1, 'hank', 2, 3] # 将两个列表及合并
L1 = [1, 2, 3]
L2 = L1 + [4, 5, 6] # 这种方法是将后一个列表追加到前一个列表中,即L1且L1不会发生变化 L2 = L1.extend([4, 5, 6]) # 通过extend()方法直接扩增, 同时等价于 L1 += [4, 5, 6]
"""删除元素"""

L = [1, 2, 3, 4]
L.remove(1) # 按值删除成员
del L[1] # 删除按索引指定的成员(del的作用是取消对象引用到数据项的绑定,并删除对象引用,引用被删除后数据项将被当做垃圾处理掉)
def L[:2] # 同时可以按切片删除一段成员
L.pop(1)       # 通过pop()方法删除成员若不指定位置参数则删除最后一个成员 L.pop()
"""修改元素"""

L = [1, 2, 3, 4]
L[0] = 9 # 通过索引值修改某个元素
L[:2] = [7, 8] # 通过切片修改一段列表

3)列表切片

L =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
L[0:2] #[1, 2], 取区间[i,j) ,左闭右开
L[:2] #同上,可省略第一位
L[2:] #[3, 4, 5, 6, 7, 8, 9, 10, 11]
L[2:-1] #[3, 4, 5, 6, 7, 8, 9, 10]
L[:] #同l1,相当于复制一份 L[::2] #步长2,[1, 3, 5, 7, 9, 11]
L[0:7:2] #[1, 3, 5, 7]
L[7:0:-2] #[8, 6, 4, 2] 注意步长为负、理解起来相当于从7到1,倒序步长2

4)列表其他操作

"""排序"""

list.sort()进行排序

L = [3, 4, 2, 5]
L.sort() # 默认升序
# sort可以接受参数
# cmp,比较函数,接受两个参数,小于时返回负,大于返回正,相等返回0
# key,指定排序键
# reverse,指定是否反序
# sorted()函数排序

L = [3, 4, 2, 5]

sorted(L, key=str.lower, reverse=True)

# 反序
L.reverse()
reversed(L) # 返回一个iterator

sort sorted 区别

sort:     在原 list 上排序,不返回排序后的 list
sorted: 不改变原 list ,返回排序后的 list
"""查找和统计"""

A.直接

L = [1, 2, 3, 4, 5]
for i in L:
print
i B.需要索引位置 L = [1, 2, 3, 4, 5]
for index, value in enumerate(L):
print(index, value) # enumerate()方法可以将其组成一个索引序列,利用它可以同时获得索引和值 len(L) # 列表长度
L * 3
重复
L = [1, 2]
L * 3 # [1,2,1,2,1,2] 清空列表
L = []
L[:] = []
del L[:]
复制列表 L2 = L1[:]
注意:在操作list时,如果是涉及原地修改的操作,例如append, insert等,返回值是None
要防止出现这种语法 L = L.append('a') ,如果这样,你将得到None.......
c.任意可迭代的(元组,列表等)数据类型都可以使用序列拆分操作符进行拆分,即*。
  >>>first, *rest = [1, 2, 3, 4]
  >>>first, rest
  >>>(1, [2, 3, 4])

二.列表解析

1)定义说明

>Python 的强大特性之一是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list。
>列表解析,又叫列表推导式( list comprehension)
>列表解析比 for 更精简,运行更快,特别是对于较大的数据集合
>列表解析可以替代绝大多数需要用到 map和 filter的场合

列表推导式提供了一个创建链表的简单途径,无需使用 map() , filter() 以及 lambda 。以定义方式得到列表通常要比使用构造函数创建这些列表更清晰。每一个列表推导式包括在一个 for 语句之后的表达式,零或多个 for 或 if 语句。返回值是由 for 或 if 子句之后的表达式得到的元素组成的列表。如果想要得到一个元组,必须要加上括号。

2)基本列表解析

基本

>>> [x for x in range(5)]   # [0, 1, 2, 3, 4]
l1 = [1,2,3,4]
[ x*2 for x in l1] #[2,4,6,8]

多个值

[ '%s = %s' for (k, v) in a_map.items()]

两次循环

>>> l1 = [1,2,3,4]
>>> l2 = [1,2,3,4]
>>> [x+y for x in l1 for y in l2]
[2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8]

可以调用函数

[ func(x) for x in l1]  #等价于map
注意:列表解析不会改变原有列表的值,会创建新的list

条件列表解析

[ x for x in range(100) if x%2 ==0 ]

嵌套列表解析

mat = [ [1, 2, 3],[4, 5, 6], [7, 8, 9]]

交换行列

[ [row[i] for row in mat] for i in (0,1,2)] #[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

一.元组

1)元组介绍

元组和列表非常类似,但是元组一旦初始化就不能修改(并不能修改顶层成员)

1)元组操作

其操作基本与列表相似,在此不做过多说明。

python学习——列表和元组的更多相关文章

  1. python学习-列表、元组和字典(三)

    学习笔记中的源码:传送门 3.1 列表和元组 3.2 不同类型变量的初始化: 数值 digital_value = 0 字符串 str_value = "" 或 str_value ...

  2. Python学习--列表和元组

    在python中,最基本的数据结构是序列.序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个索引是0. python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buf ...

  3. Python学习---列表,元组,字典

    ### 列表 list = [1,2,3,4,5,6] list.append(7) print(list) ===>>> [1, 2, 3, 4, 5, 6, 7] list[2] ...

  4. Python学习-列表元组字典操作

    一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...

  5. python之列表,元组,字典。

    在博主学习列表,元组以及字典的时候,经常搞混这三者.因为他们都是用括号表示的.分别是[],(),{}. 列表(list): [1,'abc',1.26,[1,2,3],(1,2,3),{'age:18 ...

  6. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  7. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  8. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  9. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

随机推荐

  1. 【git】Github上面的开源代码怎么在本地编译运行

    最近才发现Github是一个好东西,可以从上面学到很多东西,不说了,赶快写完去学习去... 1.首先你可以看看这个开源项目的README.md,一般一般这里都会有项目的使用方式以及一些注意的点 2.你 ...

  2. paddlepaddle实现猫狗分类

    目录 1.预备工作 1.1 数据集准备 1.2 数据预处理 2.训练 2.1 模型 2.2 定义训练 2.3 训练 3.预测 4.参考文献 声明:这是我的个人学习笔记,大佬可以点评,指导,不喜勿喷.实 ...

  3. 基于SpringBoot从零构建博客网站 - 新增创建、修改、删除专栏功能

    守望博客是支持创建专栏的功能,即可以将一系列相关的文章归档到专栏中,方便用户管理和查阅文章.这里主要讲解专栏的创建.修改和删除功能,至于专栏还涉及其它的功能,例如关注专栏等后续会穿插着介绍. 1.创建 ...

  4. Linux学习笔记05之网络基础知识

    一.OSI参考模型:适用于所有网络,现有模型,后有协议 1.应用层:应用程序.用户接口 2.表示层:编码转换.压缩.解压.加密等 3.会话层:建立.维护.拆除会话 4.传输层规定了应用程序的的接口 协 ...

  5. ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core

    前言 原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identi ...

  6. Python之assert断言语句

    关键字assert构成断言语句,主要是可以在我们书写一个新的程序时,可以使用它帮我们锁定bug范围. 表达式: assert 表达式 ‘窗口提示的信息’ 括号中的项目为选填项目,选填项目将会在表达式的 ...

  7. 对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理 对比度拉伸是扩展图像灰度级动态范围的处理.通过在灰度级中确定两个点来控制变换函数的形状.下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值. 2. 测试结果 图源自skimage ...

  8. .net core使用ocelot---第一篇 简单使用

    简介原文地址 接下来你会学习,基于asp.net core 用Ocelot实现一个简单的API网关.或许你会疑问什么是API网关,我们先看下面的截图 API网关是访问你系统的入口,它包括很多东西,比如 ...

  9. 关于asp.net调用gemalto超级狗api的具体实现

    鉴于网上关于超级狗的具体操作并不详细,我把我所知道的写下来,希望能给有需求的网友做个参考.软件外壳保护我就不说了,没有什么难度,供应商也会提供文档,一步一步操作即可.我要说的是用于保护发给客户的程序, ...

  10. ASP.NET Core MVC 之控制器(Controller)

    操作(action)和操作结果(action result)是 ASP.NET MVC 构建应用程序的一个基础部分. 在 ASP.NET MVC 中,控制器用于定义和聚合一组操作.操作是控制器中处理传 ...