day7-列表和元组

学习小结

1、列表相关操作

1)数字运算符:+、*

  • 列表1 +列表2 (将两个列表合并成一个新的列表)
list1 = [1, 3, 4]
list2 = [2, 4, 5]
num = list1 + list2
print(num)
  • 列表 * N、N * 列表 - 将列表中的元素重复N产生一个新的列表
list1 = [2, 5, 7]
print(list1 * 2)

2)比较运算符

  • 比较大小:> 、<、 >=、<=

    • 两个列表比较大小,比较的是第一对不相等的元素的大小
list1 = [4, 5, 1, 5]
list2 = [4, 3, 4, 3]
print(list1 > list2)
  • 比较相等:==,!=

3)in和 not in

  • 元素in列表(判定指定列表中是否存在指定元素)
  • 元素not in列表(判定指定列表中是否存在指定元素)
2、相关函数(系统函数):sum、max、min、len、sorted、list
  • sum(列表) - 求列表中所有元素的和(列表必须是数字列表)
list1 = [4, 5, 1, 5]
print(sum(list1))
  • max(列表)/min(列表) - 求列表中所有元素的最大值/最小值
list1 = [4, 5, 1, 5]
print(max(list1), min(list1))
  • len(列表) - 求列表长度
list1 = [4, 5, 1, 5]
print(len(list1))
  • sorted(列表) - 将列表中的数据从小到大排序
list1 = [4, 5, 1, 5]
new_list1 = sorted(list1)
print(new_list1)
  • sorted(列表, reverse=True) - 将列表中的元素从大到小排序,并产生一个新的列表
list1 = [4, 5, 1, 5]
num = sortde(list1, reverse=True)
print(num)
  • list - 将其他数据转换成列表

    • list(数据) - 将指定的数据转换成列表。(所有的序列都可以转换成序列:将其他序列转换成列表的时候直接将序列的元素作为列表的元素)
num = list('hujgjg')
print(num)num = list(range(7))
print(num)
3、列表相关方法

1)clear- 清空l列表

list1 = [4, 5, 1, 5]
list1.clear()
print(list1)

2)copy

  • 列表.copy() - 复制指定列表产生一个一样的列表,将新的列表返回

    • 列表*1、列表+[]、列表[:] 和列表.copy() 的功能一样
list1 = [4, 5, 1, 5]
list2 = list1.copy()
print(list2)
  • 直接用一个变量给另一个变量赋值,赋的是地址,赋值就会导致两个变量同时指向一块内存区域

3)count

  • 列表.count(元素) - 统计列表中指定元素的个数
list1 = [4, 5, 1, 5]
print(list1.count(5))

4)extend

  • 列表.extend(序列) - 将序列中所有的元素添加到列表中
list1 = [4, 5, 1, 5]
list1.extend('ghjak')
print(list1)list1 = [4, 5, 1, 5]
list1.extend(range(5))
print(list1)

5)index

  • 列表.index(元素) - 获取对应元素在列表中的下标(返回值是0的那个下标)
  • 如果元素不存在就会报错,元素有多个就只会返回最前面那个元素的下标
list1 = [4, 5, 1, 5]
print(list1.index(1))

6)reverse - 倒序

list3 = ['1', 7, 25, 345]
list3.reverse()
print(list3)

7)sort

  • 列表.sort() - 将列表中的元素从小到大排序
  • 列表.sort(reverse=Ture) - 将列表中的元素从大到小排序
  • sorted(列表)- 将列表中的元素从小到大排序,并产生一个新的列表
  • sorted(列表,reverse=Ture)- 将列表中的元素从大到小排序,并产生一个新的列表
4、列表推导式
  • 列表推导式 - 创建列表的推导式,主要用于对元素进行交换和筛选

    • 结构1:
      [表达式 for 变量 in 序列]
      

      原理:创建一个列表,让变量去序列中取值,一个一个取,取一次值计算一次表达式的结果,并将结果放入列表
      作用;将原序列中的元素按照指定规则(表达式)进行统一变换得到一个列表

    • 结构2:
      [表达式 for 变量 in 序列 if 条件语句]
      

      原理:让变量取序列中取值,一个一个的取,取一个值就判断一次条件语句是否成立,如果成立才计算表达式的值,并且将结果作为列表的元素
      作用:提取序列中满足条件的元素

# 结构1用法
num = [x % 2 == 0 for x in [2, 3, 4, 6, 8]]
print(num)# 练习1;将一个已知列表所有元素乘2,转换成一个新的列表
num = [1, 2, 3]
num1 = [x * 2 for x in num]
print(num1)nums = [28, 10, 81, 301, 22]
# 练习2:基于nums得到[8, 0, 1, 1, 2]
nums = [x % 10 for x in nums]
print(nums)
# 练习3: 基于nums得到[10, 1, 9, 4, 4]
nums = [28, 10, 81, 301, 22]
num1 = [x % 10 + x // 10 % 10 + x // 100 for x in nums]
print(num1)
# 练习4: 基于nums得到 [True, True, False, False, True]
nums = [28, 10, 81, 301, 22]
num2 = [x % 2 == 0 for x in nums]
print(num2)
# 结构2的用法
nums = [28, 10, 81, 301, 22]
# 练习5:基于nums得到: [81, 301]
num1 = [x for x in nums if x % 10 == 1]
print(num1)list1 = [10, '12.3', 1.23, 20, 'abc', True]
# 练习6:基于list1,得到 [10, 20]
num1 = [x for x in list1 if type(x) == int]
print(num1)# 练习7:已经一个分数列表,提取列表中所有及格分数 (删除不及格)
scores = [18, 89, 67, 90, 45, 34, 12, 89]
# [89, 67, 90, 89]
num1 = [x for x in scores if x >= 60]
print(num1)
5、元组

1)认识元组

  • 是容器:将小括号()作为容器的标志,里面的多个元素用都好隔开:(元素1, 元素2,…)
  • 是不可变的(不支持增删改);是有序的
  • 空元组
num = ()
  • 单个元素的元组(重要) - 必须在唯一的元素后面加逗号
nums = (1,)
print(nums, type(nums), len(nums))  # (1,) <class 'tuple'> 1

2)元组就是不可变量列表

  • 相关函数(支持):sum、max、min、sorted、len
  • 部分相关方法(支持):count、index
  • 列表中和增删改无关的操作,元组都支持

3)元组不只是不可变量列表

  • 单个元素的元组:(元素,)

  • 在没有歧义的时候,元组的()可以省略

    • t1 = (1, 3)
      t2 = 4, 5
      print(t1, t2)
      

作业练习

  1. 创建一个列表,列表中有10个数字, 保证列表中元素的顺序,对列表进行排重,并对列表使用进行降序排序
例如:[70, 88, 91, 70, 107, 234, 91, 177, 282, 197]--- 去重之后 [70, 88, 91, 107, 234, 177, 282, 197]---- 降序排序 [282, 234, 197, 177, 107, 91, 88, 70]
list1 = [70, 88, 91, 70, 107, 234, 91, 177, 282, 197]
list2 = []
for x in list1:if x not in list2:list2.append(x)nums = sorted(list2, reverse=True)
print(nums)
  1. 利用列表推导式, 完成以下需求

a. 生成一个存放1-100中各位数为3的数据列表

结果为 [3, 13, 23, 33, 43, 53, 63, 73, 83, 93]
nums = list(range(1, 101))
nums1 = [x for x in nums if x % 10 == 3]
print(nums1)

b. 利用列表推到是将 列表中的整数提取出来

例如:[True, 17, "hello", "bye", 98, 34, 21] --- [17, 98, 34, 21]
nums = [True, 17, "hello", "bye", 98, 34, 21]
num1 = [x for x in nums if type(x) == int]
print(num1)

c.利用列表推导式 存放指定列表中字符串的长度

例如: ["good", "nice", "see you", "bye"] --- [4, 4, 7, 3]
nums = ["good", "nice", "see you", "bye"]
nums1 = [len(x) for x in nums if type(x) == str]
print(nums1)

d. 利用列表推导式删除列表中整数个位数小于5的元素

例如:[24, 'abc', 99, True, 21, 38, 'hello'] --- ['abc', 99, True, 38, 'hello']
nums = [24, 'abc', 99, True, 21, 38, 'hello']
num1 = [x for x in nums if not (type(x) == int and x % 10 < 5)]
print(num1)

e. 利用列表推导式获取元素是元组的列表中每个元组的最后一个元素

例如:[(10, 20, 30), ('abc', 'hello'), (1, 2, 3.4), (True, False)]  --- [30, 'hello', 3.4, False]
nums = [(10, 20, 30), ('abc', 'hello'), (1, 2, 3.4), (True, False)]
num1 = [x[-1] for x in nums]
print(num1)

f.利用列表推导式将数字列表中所有的奇数乘以2,所有的偶数除以2

例如: [23, 4, 67, 88, 90, 21]  -> [46, 2, 134, 44, 45, 42]
nums = [23, 4, 67, 88, 90, 21]
num1 = [int(x / 2) if x % 2 == 0 else x * 2 for x in nums]
print(num1)
  1. 已知一个列表获取列表中指定元素所有的下标

    例如:[10, 20, 34, 10, 9, 78]
    10的下标:[0, 3]
    20的下标:[1]
    30的下标:[]
    
    nums = [10, 20, 34, 10, 9, 78]
    num2 = int(input('请输入一个整数:'))
    list1 = []
    for x, y in enumerate(nums):if num2 in nums:if num2 == y:list1.append(x)
    print(list1)
    
  2. *已知一个数字列表,写程序判断这个列表时候是连续递增列表。

    例如:
    [1, 2, 3, 4, 5]   -> True
    [23, 45, 78, 90]  -> True
    [1, 3, 2, 4, 5] -> False
    
    nums = [1, 3, 2, 4, 5]
    for i in range(len(nums) - 1):if nums[i] > nums[i + 1]:print(False)break
    else:print(True)
    
  3. 已知两个列表,将两个列表按照下面的规律交叉合并

    A = [10, 20, 30, 40, 50]
    B = [100, 200, 300]
    结果:[10, 100, 20, 200, 30, 300, 40, 50]
    
    A = [10, 20, 30, 40, 50]
    B = [100, 200, 300]
    for x, y in enumerate(B):A.insert(x * 2 + 1, y)
    print(A)
    
  4. 已知两个有序列表,将两个列表合并,合并后的新列表中元素仍然是递增列表

    A = [10, 20, 30, 40, 50]
    B = [25, 44, 60]
    结果:[10, 20, 25, 30, 40, 45, 50, 60]
    
    A = [10, 20, 30, 40, 50]
    B = [25, 44, 60]
    nums = A + B
    num1 = sorted(nums)
    print(num1)
    

day7-列表和元组相关推荐

  1. python 把列表或者元组转成集合

    python 把列表或者元组转成集合 使用set 方法 list_a = ["张三", "李四", "王二"] # 把列表转成集合 prin ...

  2. python 元组和列表区别_Python 基础(六):列表与元组

    1 列表 1.1 简介 Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同:列表是序列结构,可以进行序列结构的基本操作:索引 ...

  3. Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习

    #coding=utf-8 __author__ = 'Administrator'#Python变量类型#Python数字,python支持四种不同的数据类型 int整型 long长整型 float ...

  4. Python基础学习!容器:列表,元组,字典与集合!(2)

    本文是元组 字典与集合的学习笔记! 真滴好多! 在许多地方都可以用元组代替列表,但是元组的方法函数与列表相比要少. 像,append(),insert()这些函数,元组都没有.因为,创建元组就无法修改 ...

  5. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  6. c 提取引号中间的字符串_Python | 一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力. 列表.元组.字符串都属于序列 ...

  7. day2 字符编码、列表、元组、字符串操作、字典

    文章目录 1.三元运算与字符串编码转换 2.列表.元组操作 3.字符串操作 4.字典操作 1.三元运算与字符串编码转换 三元运算 a,b,c = 1,3,5 d = a if a > b els ...

  8. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换

    python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...

  9. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  10. python的数组和元组区别_python中数组,列表,元组的区别、定义、功能

    准确的来说,在python中是没有数组类型的,python中取而代之的是列表和元组.列表比元组好用,因为元组一旦定义就没法修改.而列表不仅可以和数组一样按索引访问,还有一堆的功能. 列表: (1)添加 ...

最新文章

  1. 叫你一声“孙悟空”,敢答应么?
  2. 由多线程内存溢出产生的实战分析
  3. 语音识别1: 音频信号采集、并存入 wav文件
  4. python 图片base64 编解码,转换成Opencv,PIL.Image图片格式
  5. Vue实现仿音乐播放器4-Vue-router实现音乐导航菜单切换
  6. 直播预告 | 旷视科技李彦玮:动态网络及其在场景分割中的应用
  7. 抄作业了!6 大 Flask 开源实战项目推荐
  8. Martix工作室考核题 —— 2019-3-8 第三题
  9. windows server2008无法将本地文件复制到远程计算机,windows2008/2012无法从本地复制文件到远程服务器处理方法...
  10. c语言设计匀速直线运动,C语言课程设计指导书2015版(试用版)201506.doc
  11. 信息传递(NOIP2015提高组Day1T2)
  12. MYSQ--SHOW PROFILE Syntax and useing
  13. Jsp+Servlet+Mysql实现的酒店预定管理系统
  14. 蓝桥杯2017年第八届C/C++省赛C组第八题-九宫幻方
  15. protel99se中文版
  16. 个人最喜欢的几款火狐扩展
  17. MEM/MBA英语基础(02) 句子成分基础
  18. 大雁牌计算机在线使用,用大雁牌计算器解决有关计算问题
  19. 微信、陌陌的架构方案分析(LBS之二)
  20. STM32单片机-汇编指令2

热门文章

  1. wps2016向程序发送命令_解决excel弹出“向程序发送命令时出现问题”的方法
  2. Windows兼容性设置图文教程,Windows兼容模式怎么设置?
  3. LINUX中安装gotop检测页面
  4. VirtualBox虚拟机安装
  5. CSS:absolute绝对定位
  6. vlc搭建流媒体转发服务器
  7. snapchat为什么_我的Snapchat朋友旁边的表情符号是什么意思?
  8. docker内存及cpu限制
  9. 【10.24】一个只属于程序员的节日
  10. 高举5G和AI两面旗帜:紫光展锐市场峰会火爆申城