首页 > 编程语言 >Python学习笔记(八)列表与元组

Python学习笔记(八)列表与元组

时间:2023-03-07 20:58:02浏览次数:49  
标签:name Python 数据类型 list 列表 print li 元组

一、列表的创建

示例:

1 # 列表中的元素可以是任意数据类型
2 li = [1, 2, 3, 4, '张三', '李四']
3 print(li)
4 li1 = []  # 空列表 用于存放数据
5 # list() 中必须是可迭代对象
6 li2 = list('123456789')  # 等价于['1','2','3','4','5','6','7','8','9']

二、列表常用操作

1.访问列表中的值

1)根据索引访问

1 name_list = ['张三', '李四', '王五', '赵六']
2 print(name_list[0])
3 print(name_list[1])
4 print(name_list[2])

2)根据切片访问

 1 # listname[start:end:step]
 2 # 切片范围左闭右开
 3 # 起始值默认为0
 4 # 步长默认为1
 5 li = list(range(1, 11, 1))
 6 print(li)
 7 # 拿到所有偶数
 8 print(li[1::2])
 9 # 拿到大于5的数
10 print(li[5:])

3)index()返回指定数据所在位置的下标

1 li = list(range(1, 11, 1))
2 # 元素为5的索引值,不存在时报错
3 print(li.index(5))

4)count()统计指定数据在列表中出现的次数

1 li = list(range(1, 11, 1))
2 print(li.count(1))

5)len()访问列表长度

1 # len函数的核心实现就是通过循环实现的
2 li_adc = [1, 23, 34, 45, 767, 143, 13, 12, 4, 5, 76, 8, 9, 0, 12, 3, 123, 123, 13, 124, 123, 12, 124, 12, 3, 124, 1, 3,
3           12, 4, 65, 7, 586, 79, 6, 9, 6, 67, ]
4 print(len(li_adc))
1 # 成员运算符:in not in
2 # 逻辑运算符:and or not
3 name_list = ['张三', '李四', '王五', '赵六']
4 name = input('请输入您要搜索的名字:')
5 if name in name_list:
6     print(f'您输入的名字是{name},名字已经存在')
7 else:
8     print(f'您输入的名字是{name},名字不存在')

2.列表添加元素

1)append()用于在列表的末尾追加元素

1 name_list = ['张三', '李四', '王五', '赵六']
2 print(name_list)
3 name_list.append('阿坤')
4 print(name_list)

2)extend()扩展列表

3)insert()在指定位置新增数据

1 name_list = ['张三', '李四', '王五', '赵六']
2 alist = ['唱', '跳', 'rap', '篮球']
3 name_list.append(alist)  # 添加
4 print(name_list)
5 name_list.extend(alist)  # 拓展
6 print(name_list)
7 name_list.insert(2, '123456')  # 指定位置新增数据
8 print(name_list)

 

 

 3.删除列表元素

1)del

1 name_list = ['张三', '李四', '王五', '赵六']
2 print(name_list)
3 del name_list  # 此列表已经被删除
4 print(name_list)  # NameError: name 'name_list' is not defined

name_list 删除,打印会报错

1 name_list = ['张三', '李四', '王五', '赵六']
2 del name_list[3]
3 del name_list[4]  # IndexError: list assignment index out of range
4 print(name_list)

name_list 索引4超范围,报错

2)clear()清空列表

1 name_list = ['张三', '李四', '王五', '赵六']
2 name_list.clear()
3 print(name_list)  # 空列表

3)pop()删除指定下标的元素,默认删除最后一个

1 name_list = ['张三', '李四', '王五', '赵六']
2 name_list.pop()
3 name_list.pop(2)
4 name_list.pop(4)  # IndexError: pop index out of range
5 print(name_list)

索引超范围,报错

4)remove()删除指定元素

1 name_list = ['张三', '李四', '王五', '赵六']
2 name_list.remove('罗翔')  # ValueError: list.remove(x): x not in list
3 print(name_list)

指定元素不存在列表中,报错

4.修改列表元素

1)根据索引修改

1 # 1 拿到六这个元素
2 # 2 对这个元素进行重新赋值
3 li = [1, 2, 3, 4, 5, '六', 7, 8, 9]
4 print(li[5])
5 i = li.index('六')  # 获取“六”的索引
6 li[i] = 6
7 print(li)

2)使用切片修改

1 # 不是一一对应
2 li = [1, 2, 3, 4, 5, '六', 7, 8, 9]
3 li[0:3] = ['a', 'b']
4 li[0:3] = ['a', 'b', 'c']
5 li[0:3] = ['a', 'b', 'c', 'd']
6 print(li)

注:切片修改替换的是指定片段,被替换数量和新元素数量并不严格要求一致

3)reverse()逆置

1 num_list = [1, 5, 2, 3, 6, 8]
2 num_list.reverse()
3 print(num_list)

4)sort(reverse=False)排序

 1 num_list = [1, 5, 2, 3, 6, 8]
 2 num_list.sort(reverse=False)  # 从小到大 升序 默认
 3 print(num_list)
 4 
 5 num_list.sort(reverse=True)  # 从大到小 降序
 6 print(num_list)
 7 
 8 # 必须同类型数据才能排序
 9 li = [1, 2, 3, 4, 5, '六', 7, 8, 9]
10 li.sort(reverse=True)  # TypeError: '<' not supported between instances of 'str' and 'int'
11 print(li)

5.列表的复制

1)copy()复制一个列表 浅复制

1 name_list = ['张三', '李四', '王五', '赵六']
2 name_list2 = name_list.copy()
3 print(name_list, id(name_list))
4 print(name_list2, id(name_list2))  # 内存改变

6.列表的循环遍历

 1 name_list = ['张三', '李四', '王五', '赵六']
 2 # for
 3 for i in name_list:  # i指的是值
 4     print(i)
 5 
 6 # while
 7 i = 0
 8 while i < len(name_list):
 9     print(name_list[i])
10     i += 1

7.列表的嵌套

1 name_list = [
2     ['张三', '李四', '阿坤'],
3     ['唱', '跳', '篮球'],
4     ['甲', '乙', '丙']
5 ]
6 
7 # 找到甲
8 print(name_list[2][0])
9 print(name_list[-1][0])

三、可变数据类型与不可变数据类型

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

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

 1 b = 'a'
 2 print(b, id(b))
 3 b = b.upper()
 4 print(b, id(b))
 5 # 列表
 6 li = [1, 2, 3, 4, 5]
 7 print(li, id(li))
 8 li.append(6)
 9 print(li, id(li))
10 
11 # 可变数据类型:列表
12 # 不可变数据类型:字符串 数值
13 # 当修改某个东西时 内存不会改变 说明这个东西是可变的 可变的数据类型
14 # 当修改某个东西时 内存会改变 说明这个东西是不可变不能够进行修改 不可变的数据类型

 

标签:name,Python,数据类型,list,列表,print,li,元组
From: https://www.cnblogs.com/JayHan/p/17189606.html

相关文章

  • python入门学习-1.从hello到函数的基本使用
    参考廖雪峰python教程starthelloworld创建一个hello.py文件,文件名只能是数字、字母、下划线的组合,输入:print('helloworld')在命令行执行代码:ztc@ztc-ubuntu:~/cod......
  • 2023、03、07学习总结之——Python学习_2
    1——Python程序设计中的整数类型没有取值范围限制,但受限于当前计算机的内存大小。2——表达式1+2*3.14>0的结果类型是:bool3——Python语言正确的标识符是(C)A.2youB.......
  • python习题
    输入a,b班的名单,并进行如下统计。输入格式:第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分......
  • 列表
    <doctypehtml><html><head>  <metacharset="utf-8">  <title>study</title>  <style>  </style></head><body><!--<ol>有序列表</ol><ul>......
  • 【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
    【选择排序算法详解】Java/Go/Python/JS/C不同语言实现 说明选择排序(SelectionSort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个......
  • Holt-Winters模型原理分析及代码实现(python)
    引言最近实验室老师让我去预测景区内代步车辆的投放量,于是乎,本着“一心一意地输出年富力强的劳动力”这份初心,我就屁颠屁颠地去找资料,然后发现了Holt-Winters模型,感......
  • 手把手教你用python写游戏
    引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏......
  • python unittest
    shttps://docs.python.org/zh-cn/3.10/library/unittest.htmlhttps://softdown02.rbread05.cn/down/unittest2-0.5.1.tar.zip 一、unittest编写规范1、unittest ......
  • 生成你的自定义密码本Python
    python生成一个自定义密码本importitertoolsasitsimportos#定义生成密码本的函数defgenerate_passwords(length,combination):ifcombination=="1":......
  • Python第三方库request的安装及基本用法
    ​1、安装安装命令:pipinstallrequests豆瓣源安装:pipinstallrequests-ihttps://pypi.douban.com/simple/​2、requests常见参数​url参数:传入的是字符串,请求地址data......