列表(list)与元组(tuple)

列表的格式

>- [数据1,数据2,数据3,数据4,......]

>- 列表可以存储多个数据,数据之间的逗号以英文分割而且可以数据是不同类型的数据,列表是可变数据类型。

>- 空列表 list_data = [] 或者 list_data = list()

  • 列表的创建
# 使用 [ ] 直接创建列表
li = [1,2,3,4,"张三","李四"]
# 使用 list() 函数创建列表
li2 = list('123456789')

列表的常规操作

> 列表的作用是⼀次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查等等

访问列表中的值

  • 根据索引访问列表元素
# 使用索引访问列表元素的格式为:name_list[i]
name_list = ['张三', '李四', '王五','赵六']
print(name_list[0])
print(name_list[1])
print(name_list[2])
  • 根据切片访问列表元素
# 使用切片访问列表元素的格式为:name_list[start : end : step]
name_list = ['张三', '李四', '王五','赵六']
print(name_list[0:4:2])

常用内置函数

方法 描述
append() 在列表最后添加一个数据
pop() 从列表中删除一个数据,默认删除(根据索引)最后一个
sort() 对数据进行排序,默认从小到大排序
reverse() 倒置列表
count() 统计列表中的某一个数据出现的次数
index() 查找索引
extend() 把可迭代对象里的数据一个一个追加到列表中
remove() 删除某个数据
insert() 插入数据
clear() 清空列表中的数据
copy() 复制列表
# append() 在列表的最后添加一个数据
list_data = []
new_data = list_data.append("小明")
print(new_data)
print(list_data) # pop() 从列表中删除一个数据,默认删除(根据索引)最后一个,相当于pop(-1)
list_data = [1, 2, 3, 4, 5, 6, 7]
data = list_data.pop()
print(list_data) # [1, 2, 3, 4, 5, 6]
print(data) # 7
list_data.pop(0)
print(list_data) # [2, 3, 4, 5, 6] # sort(key,reverse) 对数据进行排序,默认从小到大排序,即默认是reverse=False
# 其他数据类型也是可以进行排序的,是根据ascll码对应数值大小进行排序
list_data = [2, 3, 9, 6, 5, 2, 1]
list_data.sort()
print(list_data) # [1, 2, 2, 3, 5, 6, 9]
list_data.sort(reverse=True)
print(list_data) # [9, 6, 5, 3, 2, 2, 1] # reverse() 倒置列表
list_data = [1, 3, 2]
list_data.reverse()
print(list_data) # [2, 3, 1] # count() 统计列表中的某一个数据出现的次数,这里需注意,不仅判断数值大小,其数据类型也相同才会计数
list_data = [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
data = list_data.count(1) # 这里与前面的方法不同,这个会返回一个值,需要变量来接收
print(list_data) # [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
print(data) # 3
print(list_data.count(2)) # 1
print(list_data.count('2')) # 3 # index() 查找索引,如果该数据有多个返回最前面的一个
list_data = [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
data = list_data.index(1) # 这里与前面的方法不同,这个会返回一个值,需要变量来接收
print(list_data) # [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
print(data) # 0 # extend(可迭代对象) 把可迭代对象里的数据一个一个追加到列表中
list_data1 = [1, 3, 2]
list_data2 = [4, 5, 6]
list_data3 = "小明"
print(list_data1 + list_data2) # [1, 3, 2, 4, 5, 6]
list_data1.extend(list_data2) # 这里与前面的方法不同,这个会返回一个值,需要变量来接收
print(list_data1) # [1, 3, 2, 4, 5, 6]
list_data1.extend(list_data3)
print(list_data1) # [1, 3, 2, 4, 5, 6, '小', '明'] # remove() 删除某个数据,有多个时删除最前面的
list_data = [1, 2, 3, 2]
list_data.remove(2)
print(list_data) # [1, 3, 2] # insert(index, object) 插入数据
list_data = [1, 2, 3]
list_data.insert(0, "小明") # 0代表需要插入的位置的索引,”小明“为所需要插入的数据
print(list_data) # ['小明', 1, 2, 3] # clear() 清空列表中的数据
list_data = [1, 2, 3]
list_data.clear()
print(list_data) # [] # copy() 复制列表 深复制 浅复制
list_data1 = [1, 2, 3]
list_data2 = list_data1
list_data2.pop()
print(list_data2) # [1, 2]
print(list_data1) # [1, 2] list_data1 = [1, 2, 3]
list_data2 = list_data1
list_data2 = list_data1.copy()
list_data2.pop()
print(list_data2) # [1, 2]
print(list_data1) # [1, 2, 3]

修改列表元素

>Python 支持通过切片语法给一组元素赋值。在进行这种操作时,如果不指定步长(step 参数),Python 就不要求新赋值的元素个数与原来的元素个数相同;这意味,该操作既可以为列表添加元素,也可以为列表删除元素。

  • 修改单个元素
name_list = ['张三', '李四', '王五','赵六']
name_list[0] = '阿坤'
print(name_list)
  • 修改一组元素
nums = [40, 36, 89, 2, 36, 100, 7]
#修改第 1~4 个元素的值(不包括第4个元素)
nums[1: 4] = [45.25, -77, -52.5]
print(nums)

列表的循环遍历

  • for循环
name_list = ['张三', '李四', '王五','赵六']
for i in name_list:
print(i)
  • while循环
i = 0
name_list = ['Tom', 'Lily', 'Rose']
while i < len(name_list):
print(name_list[i])
i += 1

列表的嵌套

> 所谓列表嵌套指的就是⼀个列表⾥⾯包含了其他的⼦列表

list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list1[1]) # [4, 5, 6]
print(list1[1][1]) # 5

元组(tuple)

>- (数据1,数据2,数据3,数据4,......)

>- 不可变数据类型,元组不可修改,列表中的元组也不可以修改,但元组中的列表可以修改。

>- 单个数据的元组,需要定义为tuple_data = (1, ),需要在后面加一个逗号

>- 空元组 tuple_data = () 或者 tuple_data = tuple()

元组数据查找

  • 根据下标查找
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])
  • index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index⽅法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa')) # 0
  • count():统计某个数据在当前元组出现的次数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb')) # 1
  • len():统计元组中数据的个数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1)) # 4

del删除

  • del,当创建的元组不再使用时,可以通过 del 关键字将其删除
tup = ("python","yyds")
print(tup)
del tup
print(tup) # NameError: name 'tup' is not defined

元组数据不能修改

# 元组内的直接数据如果修改则⽴即报错
# 但是如果元组⾥⾯有列表,修改列表⾥⾯的数据则是⽀持的。
tup = (1, 2, 3, [4, 5])
print(tup, id(tup)) # (1, 2, 3, [4, 5]) 1455401272328
tup[-1].append(6)
print(tup, id(tup)) # (1, 2, 3, [4, 5, 6]) 1455401272328

可变类型与不可变类型

>可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。

"""数值"""
a = 1
print(a, id(a)) # 1 1440395456
a = a + 1
print(a, id(a)) # 2 1440395488
"""字符串"""
b = 'a'
print(b, id(b)) # a 2463434018520
b = b.upper()
print(b, id(b)) # A 2463434215920
"""列表"""
li = [1, 2, 3, 4, 5]
print(li, id(li)) # [1, 2, 3, 4, 5] 2464553888584
li.append(6)
print(li, id(li)) # [1, 2, 3, 4, 5, 6] 2464553888584
"""元组"""
tup = (1, 2, 3, [4, 5])
print(tup, id(tup)) # (1, 2, 3, [4, 5]) 2464553829384
tup[-1].append(6)
print(tup, id(tup)) # (1, 2, 3, [4, 5, 6]) 2464553829384

08列表(list)与元组(tuple)的更多相关文章

  1. [Python]字典Dictionary、列表List、元组Tuple差异化理解

    概述:Python中这三种形式的定义相近,易于混淆,应注意区分. aDict={'a':1, 'b':2, 'c':3, 'd':4, 'e':5} aList=[1,2,3,4,5] aTuple= ...

  2. python基础2--数据结构(列表List、元组Tuple、字典Dict)

    1.Print函数中文编码问题 print中的编码:# -*- coding: utf-8 -*- 注:此处的#代表的是配置信息 print中的换行符,与C语言相同,为"\n" 2 ...

  3. Python 元组Tuple概念和操作

    # 元组概念:有序的不可变的元素集合 # 和列表的区别就是, 元组元素不能修改 # 定义 # 一个元素的写法 # (666,) t = (666,) #正确写法 t = (666) #错误写法,括号当 ...

  4. python中元组tuple

    python中列表(list)和元组(tuple)有很多相似的地方,它们都是容器,由一系列的对象构成,都可以包含任意类型的元素,甚至是一个序列.   list和tuple的不同首先体现在写法上: li ...

  5. python 元组tuple - python基础入门(14)

    在上一篇文章中我们讲解了关于python列表List的相关内容,今天给大家解释一下列表List的兄弟 – 元组,俗称: tuple. 元组tuple和列表List类似,元组有如下特点: 1.由一个或者 ...

  6. Python中的元组(tuple)、列表(list)、字典(dict)

    -------------------------------更新中-------------------------------------- 元组(tuple): 元组常用小括号表示,即:(),元 ...

  7. python中的字典(dict),列表(list),元组(tuple)

    一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...

  8. python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器

    一.元组: tuple Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组 tup2 = (111, 22, 33, ...

  9. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  10. 人生苦短之我用Python篇(列表list、字典dict、元组tuple、字符串str)

    列表 创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_s ...

随机推荐

  1. C语言初级阶段4——数组2————二维数组

    C语言初级阶段4--数组2----二维数组 二维数组的定义:类型说明符 数组名[数组大小] [数组大小] 第一个大小是行的大小,第二个大小是列的大小. 二维数组的初始化:{} #include< ...

  2. 2003031120—廖威—Python数据分析第七周作业—MySQL的安装以及使用

    项目    内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 这个作业要求链接  https://edu.cnblogs.com/campus/ ...

  3. doy 18 定时任务

    1.定时任务 1.什么是定时任务 类似日常生活之中的闹钟:主要用于定时执行某些命令,达到定时处理数据的作用. 2.定时任务的软件的种类 1.linux操作系统自带的软件:crontab 2.第三方的定 ...

  4. (十四).CSS3中的多列布局和伸缩盒布局

    1 多列布局 ① 设置给包裹元素的 CSS 属性(共 8 个属性) CSS 属性名 含义 值 column-count 设置列数 纯数字 column-width 设置列宽 长度 columns 同时 ...

  5. Flink学习系列——简介

    Flink起源 德国柏林 Flink的目标 低延迟 高吞吐 较高的准确性(乱序数据的处理) 良好的容错性(容错性差的表现:一个节点挂了,全部回滚重新做计算,这对实时性要求高的场景非常致命)

  6. linux 数据卷磁盘管理

    新加磁盘如何创建逻辑分区 查看命令 lvs  vgs pvs 1: 新建一个分区(partition)fdisk /dev/sdb 2:创建PV(物理卷)pvcreate /dev/sdb1pvs或 ...

  7. 切片slice

    1.切片 切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用类型的机制 切片的使用和数组类似,如遍历切片,访问切片的元素和求切片长度len(slice)都一样. 切片的长度是可以变化的, ...

  8. 共享USB打印机设置方法

    打印机共享 一.准备 所有计算机在同一个网段. 所有计算机在同一个工作组,组名可以自定义,默认WORKGROUP. 使用超级管理员用户,目的是为了激活guest用户.验证之后可以不需要此前提. 二.主 ...

  9. java并发编程实践-线程安全性

    线程是CPU资源调度的基本单位,如果一个程序中只有一个线程,则最多只能在一个处理器上运行,如果电脑/服务器是双处理器系统,则单线程的程序只能使用一半的CPU资源,所以,多线程是提高处理器资源利用率的重 ...

  10. pytorch CrossEntropyLoss() 默认转换one-hot编码

    import torchpredict = torch.randn((4,3))predict = torch.nn.functional.softmax(predict,dim = 1)target ...