python(16)-列表list,for循环

高级数据类型--列表

  • 1列表定义
  • 2列表中取值
  • 3列表的增,删,查,改
    • 3.1修改指定位置的数据
    • 3.2确定指定元素的索引
    • 3.3增加操作
    • 3.4删除操作
    • 3.5 元素是否存在与列表中 in
    • 3.6在指定索引位置插入元素
  • 4列表的数据统计
  • 5列表排序
  • 6列表的循环遍历-for
  • 7多维度list 的切片操作
  • 8列表的加法-链接

非数值类型:列表,元祖,字典,字符串,都是Python中的高级变量类型
Python中的非数值类型都支持一些共同的操作:都是一个序列,也可以理解为容器,用来装东西用

列表数据类型的应用场景:存储多个相同类型的数据,通过迭代遍历,针对每一项元素,执行相同的操作
注意: 列表中可以存不同类型的数据,但是一般不这么用。
在这里插入图片描述
Python中的列表由于其灵活的操作,既可实现堆栈操作(先进后出),还可实现队列操作(先进先出)

1列表定义

列表-在其他语言中等价于数组,用于存储一串信息
记录三个人的名字,可以 用三个字符串变量存储,也可以用一个列表存储多个变量

name_list=[“zhangsan”,“lisi”,“wangwu”]

用[]定义列表,其中元素用逗号,分隔

2列表中取值

利用索引取出列表中的元素,索引超出范围,程序会报错

name_list[1]

zhangsan

3列表的增,删,查,改

列表的常用操作包括 :增,删,查,改。可以通过函数方法两种方式来执行常用操作:函数通过函数名()调用,方法通过变量名.方法名调用

3.1修改指定位置的数据

name_list[1]=‘lisisi’

3.2确定指定元素的索引

name_list.index(“lisi”)

使用index方法需要注意,如果传递的数据不在列表中,程序会报错

3.3增加操作

1.向列表的末尾追加数据

name_list.append(“wangxiaoer”)

2.在列表的指定索引位置添加一个数据(添加在0,1之间)

name_list.insert(1,“xiaomeiemi”)

3.将可以迭代的数据增加到当前对象的末尾

temp_list=[“sunwukong”,“zhuerge”,“sanshidia”]
name_list.extend(temp_list)

3.4删除操作

1.删除指定的数据,当列表中有多个“zhangsan”,会删掉一个第一个指定数据

name_list.remove(“wangwu”)

2.pop默认可以将列表中最后一个元素删除

name_list.pop()

pop方法可以指定索引,删除元素,同时可以将弹出的元素返回

a=name_list.pop(3)

3.claer方法将列表清空呢

name_list.clear()

name_list=[]

Python2.7版本的编译器中没有这个方法偶,如果有,会将列表清空呢

4.扩展: Del 从列表中删除数据,用于删除指定索引的元素

del name_list[1]

del本质上是将变量从内存中删除,如果使用del删除了一个变量,那么后续就不能使用该变量。慎重使用

3.5 元素是否存在与列表中 in

在这里插入图片描述

3.6在指定索引位置插入元素

list.insert(index, obj)

4列表的数据统计

数据统计操作包括一个函数一个方法

1.统计列表数据保存了多少个数据,列表数据的长度

list_len=len(name_list)
print(“列表中包含:%d”%list_len)

2.统计某个数据出现的次数

count=name_list.count(“zhangsan”)
print(“zhangsan 出现了:%d”%count)

5列表排序

新定义两个列表:
name_list=[“zhangsan”,“lisi”,“wangwu”,“wangxiaoer”]
num_list=[6,8,4,1,10]

默认升序排序,字符串按首字母的顺序a-z

name_list.sort()
num_list.sort()

降序输出

name_list.sort(reverse=True)
num_list.sort(reverse=True)

翻转(逆序)

name_list.reverse()
num_list.reverse()

翻转列表一部分内容

#to reverse a part of the string in place
a = [1,2,3,4,5]
a[2:4] = reversed(a[2:4]) # This works!
a[2:4] = [0,0] # This works too.
a[2:4].reverse() # But this doesn’t work

参考资料:https://cloud.tencent.com/developer/ask/53697

索引实现列表逆序

a=[1,2,3,4,5]
a[::-1] # 为a[i:j:s]的缺省表示,i=0,j=len(a),s=-1

参考博文:https://blog.csdn.net/marraybug/article/details/85163484

lambda表达式在sort函数中的使用
假如a是一个由元组构成的列表,对该列表进行排序时,我们需要用到参数key,也就是关键词,如下面代码所示,lambda是一个匿名函数,是固定写法;x表示匿名函数的输入,即列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示匿名函数的输出,即元组里的第一个元素,即key = x[0];所以这句命令的意思就是按照列表中第一个元素进行排序。

a = [(‘b’, 4), (‘a’, 12), (‘d’, 7), (‘h’, 6), (‘j’, 3)]
a.sort(key=lambda x: x[0])
print(a)
#输出
[(‘a’, 12), (‘b’, 4), (‘d’, 7), (‘h’, 6), (‘j’, 3)]

参考博文:https://www.cnblogs.com/lovewhale1997/p/11424429.html

6列表的循环遍历-for

循环遍历:依次从列表中获取数据,在循环体内部对每个元素执行相同的操作。为了提高列表的遍历效率,专门提供了迭代iteration遍历,For能够实现迭代遍历。

name_list=["zhangsan","lisi","wangwu","wangxiaoer"]
# 下标迭代遍历
for i in range(len(name_list)):print("我的名字叫:%s"%name_list[i])
# iteration遍历, 顺序的从列表中依次获取数据,每一次循环过程中,数据都会保存在my_name
# 通过my_name这个变量中,每次在循环体内部都可以访问当前这一次获取到的数据
for my_name in name_list:print("我的名字叫:%s"%my_name)

优点:不需要设计计数器,也不需要对计数器进行操作

7多维度list 的切片操作

>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> a        // 没有size,和shape方法
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a[0]
[1, 2, 3]
>>> a[0][0]
1
>>> a[:2]    // 结果是一个list ,再次切片也只是对于第0维度的一个切片
[[1, 2, 3], [4, 5, 6]]
>>> a[:][0]  // 并不是想要的所有行,第0[147],想要实现这个切片操作,可以将其转换为numpy数组再操作
[1, 2, 3]

转换成numpy数组,拼接时没有list.append()那么直接,需要用numpy.concatenate()进行拼接,但是这个拼接维度的数量不会增加,如果需要多增加一个维度,可以使用[array1,array2,array3]再转tensor/array的方法进行操作。

8列表的加法-链接

两个链表相加,实现两个链表的拼接:

[1,2]+[3,4]
输出:[1, 2, 3, 4]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习(11)-- GAN

TensorFlow (GAN) 目录 TensorFlow (GAN)目录1、GAN1.1 常见神经网络形式1.2 生成网络1.3 新手画家 & 新手鉴赏家1.4 GAN网络1.5 例子 1、GAN 今天我们会来说说现在最流行的一种生成网络, 叫做 GAN, 又称生成对抗网络, 也…

redis——数据结构和对象的使用介绍

redis官网 微软写的windows下的redis 我们下载第一个 额案后基本一路默认就行了 安装后,服务自动启动,以后也不用自动启动。 出现这个表示我们连接上了。 redis命令参考链接 String 字符串结构 struct sdshdr{//记录buf数组中已使用字节的数量int …

Python模块(1)-Argparse 简易使用教程

argparse 简易使用教程1.概况2. action3. argparse 使用demo3.1 argparse 实现加法器3.2 D-Model parser1.概况 argparse是Python中用于解析命令行参数的一个模块,可以自动生成help和usage信息;当从终端输入的参数无效时,模块会输出提示信息…

redis——NOSQL及redis概述

NoSql入门概述 单机Mysql的美好时代 瓶颈: 数据库总大小一台机器硬盘内存放不下数据的索引(B tree)一个机器的运行内存放不下访问量(读写混合)一个实例不能承受Memcached(缓存) MySql 垂直拆…

Python(17)-元组tuple

高级数据类型--元组1.元组的定义2.元组基本操作3.元组的循环遍历4.元组的应用场景5.元组与格式化字符串6.元组与列表之间的转换元组的最大特征就是可访问不可改,可作为字典的键值,因为键值必须是唯一的。字符串也是不可边类型,因此也适合做字…

深度学习(莫烦 神经网络 lecture 3) Keras

神经网络 & Keras 目录 神经网络 & Keras目录1、Keras简介1.1 科普: 人工神经网络 VS 生物神经网络1.2 什么是神经网络 (Neural Network)1.3 神经网络 梯度下降1.4 科普: 神经网络的黑盒不黑1.5 Why Keras?1.6 兼容 backend 2、如何搭建各种神经网络2.1 Regressor回归…

阿里Java编程规约(集合)

【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要覆写 equals,就必须覆写 hashCode。 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对…

Pytorch(3)-数据载入接口:Dataloader、datasets

pytorch数据载入1.数据载入概况Dataloader 是啥2.支持的三类数据集2.1 torchvision.datasets.xxx2.2 torchvision.datasets.ImageFolder2.3 写自己的数据类,读入定制化数据2.3.1 数据类的编写map-style范式iterable-style 范式2.3.2 DataLoader 导入数据类1.数据载入…

大数据学习(5)-- NoSQL数据库

文章目录目录1.NoSQL的介绍2.NoSQL产生的原因2.1 web2.02.2 NoSQL兴起原因3.NoSQL和关系数据库的区别4.NoSQL的四大类型4.1 键值数据库4.2 列族数据库4.3 文档数据库4.4 图形数据库4.5 不同类型的NoSQL数据库进行比较5.NoSQL的三大基石5.1 CAP5.2 base5.3 最终一致性6.从NoSQL到…

经典算法重点总结

文章目录排序算法冒泡排序直接插入排序希尔排序直接选择排序快速排序堆排序归并排序总结查找算法顺序查找二分查找插值查找斐波那契查找树表查找分块查找哈希查找总结排序算法 冒泡排序 void bubbleSort(int a[] , int n){for(int i n-1 ; i > 0 ; i--){for(int j 0 ; j …

redis——HyperLogLog

HyperLogLog 是一种概率数据结构,用来估算数据的基数。数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID。 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的基数就是 4,a, b, c, d, a 的基数还是 4。虽然 a 出现两次…

机器学习知识总结系列-机器学习中的优化算法总结(1-4)

文章目录1.梯度下降1.1批量梯度下降(BGD)1.2随机梯度下降(SGD)1.3 小批量随机梯度下降(MSGD)1.4 比较:1.5 动量算法(momentum)1.6 Nestrov Momentum2. 自适应方法2.1 自适应学习率算法&#xff…

Python(19)-字符串、Unicode字符串

高级数据类型--字符串、Unicode字符串1.字符串的定义2.字符串的长度、计数、Index3.字符串常用方法3.1判断类型3.2查找和替换3.3文本对齐3.4去除空白字符.strip()4.字符串的拆分和拼接5.字符串的切片6.跨行字符串7.包含转义字符r8.字符串的分割与连接9.Unicode字符串字符串-不变…

机器学习中的距离和损失函数

文章目录13.1 距离度量13.2 损失函数13.1 距离度量 距离函数种类:欧式距离、曼哈顿距离、明式距离(闵可夫斯基距离)、马氏距离、切比雪夫距离、标准化欧式距离、汉明距离、夹角余弦等常用距离函数:欧式距离、马氏距离、曼哈顿距离…

Python(20)-高级数据类型的公共方法

高级数据类型的公共方法1内置函数2高级数据类型切片3运算符,*,in4完整的for循环公共方法是列表,元组,字典,字符串都能使用的方法1内置函数 内置函数:不需要import导入模块,就可以直接使用的函数…

redis——为什么选择了跳表而不是红黑树?

跳表是个啥东西请看这个文章。 我们知道,节点插入时随机出一个层数,仅仅依靠一个简单的随机数操作而构建出来的多层链表结构,能保证它有一个良好的查找性能吗?为了回答这个疑问,我们需要分析skiplist的统计性能。 在…

机器学习公式推导

文章目录线性回归逻辑回归线性判别分析PCAk-means决策树svm随机深林GBDTxgboost强化学习MapReduce线性回归 逻辑回归 对于分类问题:输出0/1,超过[0,1]没有意义,使用sigmoid函数 **代价函数:**使用L2平方差,由于模型函…

Python综合应用(1)--名片管理系统开发

第一个综合应用-名片管理系统1框架搭建2完善功能综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程…

springboot1——spring相关入门

spring 随着我们开发,发现了一个问题: A---->B---->C---->D 在A中创建B的对象调用B的资源 在B中创建C的对象调用C的资源 在C中创建D的对象调用…

大数据学习(06)-- 云数据库

文章目录目录1.什么是云数据库?1.1 云计算和云数据库的关系1.2 云数据库的概念1.3 云数据库的特性1.4 云数据库应用场景1.5 云数据库和其他数据的关系2.云数据库产品有哪些?2.1 云数据库厂商概述2.2 亚马逊云数据库产品2.3 Google云数据库产品2.4 微软云…