Python列表常用方法(3-1)

举报
乂氼S 发表于 2023/05/28 13:12:04 2023/05/28
【摘要】 Python列表常用方法(3-1)

 目录

一.列表操作符

  1.len函数在列表元组中的使用

  3.in和not in在列表元组中的用法

 二.列表append

  1.append的功能

  2.append的用法

3.append的注意事项

4.小拓展:为什么内存地址是由解释器分配的?

三.列表insert 

  1.insert的功能

  2.insert的用法

  3.insert与append的区别

三.列表count 

  1.count的功能

  2.count的用法

 3.count的注意事项

四.列表remove 

  1.remove功能

  2.remove用法

  3. remove的注意事项

4.拓展—Python的内置函数del

五.列表reverse

  1.reverse的功能

  2.reverse的用法





一.列表操作符

  1.len函数在列表元组中的使用

  • len函数可以计算出,除了数字类型
    以外,其他所有数据类型的长度

  演示:

# coding:utf-8

str_01 = 'xiaolin'
# 注意!!!数字类型没有长度
number = 123456
_list = [1, 2, 3, 4, 5, 6]
_tuple = (1, 2, 3, 4, 5, 6)
_dict = {'name': 'xiaolin', 'age': 18}
_set = {1, 2, 3, 4, 5, 6}

print(len(str_01))  # 返回字符串中字符的数量
# print(len(number))  # 数字类型没有长度所以此处会报错
print(len(_list))  # 返回列表中元素的数量
print(len(_tuple))  # 返回元组中元素的数量
print(len(_dict))  # 返回字典中键值对的数量
print(len(_set))  # 返回集合中元素的数量

  结果:

7
6
6
2
6

进程已结束,退出代码0

注意!!数字类型不能返回长度,在Python中,数字类型(如整数和浮点数)是原始数据类型,它们被视为单个值而不是序列,它们没有通用的返回长度的方法,但是某些原始数据类型具有特定的数据类型的方法来获取关于其长度或其大小的信息,比如字符串类型具有len()方法来获取字符的数量。相反,如果您需要获取数字的位数或小数点后的位数,可以使用字符串格式化或字符串方法来获得所需的信息。

  例如 :

# coding:utf-8

number = 123456
inttype = str(number)
print(len(inttype))  # 打印的结果为6

同样,要获取浮点数小数点后的位数,小伙伴们可以使用字符串格式化将其格式化为包含指定位数小数的字符串,然后使用字符串方法来计算小数点后的位数,如下所示:

num = 3.14159
num_str = f"{num:.5f}"  # 将浮点数格式化为包含5位小数的字符串
decimal_places = len(num_str.split('.')[1])  # 以小数点作为分隔符,并把分隔后的数据组合成为一个列表
print(decimal_places)  # 输出 5


  2.列表元组之间的累加和乘法

  • 列表+列表返回一个新的列表
  • 列表*数字返回一个重复的列表
  • 列表的累加和累乘,都是定义一个新的列表,而不是在原有的列表上进行操作

演示:

# coding:utf-8

# 元组的累加和累乘
name_01 = ('xiaomu', 'dewei')
name_01 += ('123',)
print(name_01)
name_01 *= 10
print(name_01)

# 列表的累加和累乘
list_01 = ['dewei', 'xiaomu']
list_01 += ['123']
print(list_01)
list_01 *= 6
print(list_01)

 结果:


('xiaomu', 'dewei', '123')
('xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123', 'xiaomu', 'dewei', '123')
['dewei', 'xiaomu', '123']
['dewei', 'xiaomu', '123', 'dewei', 'xiaomu', '123', 'dewei', 'xiaomu', '123', 'dewei', 'xiaomu', '123', 'dewei', 'xiaomu', '123', 'dewei', 'xiaomu', '123']

进程已结束,退出代码0

  通过id函数可以判断累加或累乘后的列表为新的列表 ,如下图所示:

  演示:

# coding:utf-8

list1 = [1, 2, 3]
print(id(list1))

list2 = [4, 5, 6]
print(id(list2))

list3 = list1 + list2
print(id(list3))  # 结果它们三个变量的内存地址不一样,说明它们不是来自同一个引用的变量

  结果:

1276044676160
1276044734592
1276045412928

进程已结束,退出代码0

  3.in和not in在列表元组中的用法

  • in是判断某个成员(元素)是否在
    该数据结构中,not in与之相反
  • 返回布尔类型(True或False)
  • 拓展:在编程中,数据结构是一种将数据组织和存储在计算机中以便有效访问和使用的方式。Python提供了几种内置的数据结构,包括列表、元组、集合和字典。

    例如:

# coding:utf-8

list1 = [1, 2, 3]
print(6 in list1)  # 返回False
print(6 not in list1)  # 返回True
print(1 in list1)  # 返回True
print(1 not in list1)  # 返回False

 二.列表append

  1.append的功能:

  • 将一个元素添加到当前列表中

  2.append的用法:

用法:list.append(new_item)
参数:new_item:添加进列表的新的元素(成员)

演示:

# coding:utf-8

books = []
print(id(books))
books.append(42)
print(id(books))  # 使用id函数判断是否在原数据上进行操作

# books.append('1', '2', '3')
# print(books)
# append函数一次只能添加一个元素,多次加入可以使用循环

# 布尔类型和空类型也可以进行添加操作
books.append(None)
print(books)
books.append(False)
print(books)

结果: 

1355125918784
1355125918784
[42, None]
[42, None, False]

进程已结束,退出代码0

3.append的注意事项:

  •  被添加的元素只会被添加到末尾变量
  • append函数是在原有列表的基础上添加,不需要额外添加新的变量
  • 通过id函数可以判断出append函数是在原列表上操作的
  • append函数一次只能添加一个元素,若要多次加入,可以使用循环

4.小拓展:为什么内存地址是由解释器分配的?

 这是因为Python是一种解释型语言,它的代码是在运行时被解释器逐行执行的。因此,解释器需要在运行时动态地分配内存来存储变量和对象。这与编译型语言不同,编译型语言的代码是在编译时被转换成机器码,因此它们可以在运行时直接访问内存地址。


三.列表insert 

  1.insert的功能:

  • 将一个元素添加到当前列表的指定位置中

  2.insert的用法

用法:list.insert(index, new_item)
参数:index:新的元素放在哪个位置(数字)
new_item:添加的新元素(成员)

  3.insert与append的区别

  • append只能添加到列表的结尾,而insert可以选择任何一个位置
  • 如果insert传入的位置列表中不存在,则将新元素添加到列表结尾
  • 字符串,元组,列表元素的位置是从0开始计算的

 演示:

# coding:utf-8

students = [
    {'name': 'dewei', 'age': 20, 'sex': '男', 'id': 1, 'top': 175},
    {'name': 'xiaomu', 'age': 23, 'sex': '男', 'id': 2, 'top': 174}
]

xiaoyun = {'name': 'xiaoyun', 'age': 25, 'sex': '女', 'id': 3, 'top': 164}
students.insert(0, xiaoyun)
print(students)

students.insert(3, None)
students.insert(4, None)
students.insert(5, None)

xiaogao = {'name': 'xiaogao', 'age': 18, 'sex': '男', 'id': 4, 'top': 180}
students.insert(6, xiaogao)
print(students)

xiaoming = {'name': 'xiaoming', 'age': 19, 'sex': '男', 'id': 5, 'top': 178}
students.insert(3, xiaoming)
print(students)

结果:

[{'name': 'xiaoyun', 'age': 25, 'sex': '女', 'id': 3, 'top': 164}, {'name': 'dewei', 'age': 20, 'sex': '男', 'id': 1, 'top': 175}, {'name': 'xiaomu', 'age': 23, 'sex': '男', 'id': 2, 'top': 174}]
[{'name': 'xiaoyun', 'age': 25, 'sex': '女', 'id': 3, 'top': 164}, {'name': 'dewei', 'age': 20, 'sex': '男', 'id': 1, 'top': 175}, {'name': 'xiaomu', 'age': 23, 'sex': '男', 'id': 2, 'top': 174}, None, None, None, {'name': 'xiaogao', 'age': 18, 'sex': '男', 'id': 4, 'top': 180}]
[{'name': 'xiaoyun', 'age': 25, 'sex': '女', 'id': 3, 'top': 164}, {'name': 'dewei', 'age': 20, 'sex': '男', 'id': 1, 'top': 175}, {'name': 'xiaomu', 'age': 23, 'sex': '男', 'id': 2, 'top': 174}, {'name': 'xiaoming', 'age': 19, 'sex': '男', 'id': 5, 'top': 178}, None, None, None, {'name': 'xiaogao', 'age': 18, 'sex': '男', 'id': 4, 'top': 180}]

进程已结束,退出代码0



三.列表count 

  1.count的功能:

  • 返回当前列表中某个成员的个数

  2.count的用法:

用法: inttype = list.count(item) 结果返回整型
参数:item:你想查询个数的元素

 3.count的注意事项:

  •  如果查询的成员(元素)不存在,则返回0
  • 列表只会检查完整元素是否存在需要计算的内容

  演示:

# coding:utf-8

list1 = [1, 2, 3, 99, 5, 6, 8, 77, 5, 6, 9, 7, 4]
print(list1.count(5))
print(list1.count(9))
print(type(list1.count(5)))  # 整型
print(list1.count(100))  # 元素不存在返回结果0

   结果:

   

2
1
<class 'int'>
0

进程已结束,退出代码0



四.列表remove 

  1.remove功能:

  • 删除列表中的某个元素

  2.remove用法:

用法: list.remove(item)
参数:item:准备删除的列表元素

  3. remove的注意事项:

  • 如果删除的成员  (元素)不存在,会直接报错
  • 如果被删除的元素有多个,只会删除第一个
  • remove函数不会返回一个新的列表,而是在原先的列表中对元素进行删除 

  演示:

# coding:utf-8

list1 = [1, 2, 3, 99, 5, 6, 8, 77, 5, 6, 9, 7, 4]
id_list1 = id(list1)

# list1.remove(14)
# print(list1)  # 被删除的元素不存在,则会直接报错

list1.remove(5)
print(list1)  # 如果被删除的元素有多个,则只会删除第一个出现的元素

list1.remove(1)
id_list2 = id(list1)
print(id_list1 == id_list2)  # 返回True

  结果:

  

[1, 2, 3, 99, 6, 8, 77, 5, 6, 9, 7, 4]
True

进程已结束,退出代码0

4.拓展—Python的内置函数del

  • del把变量完全删除
  • 将变量从内存地址中直接删除

  例如:

  

# coding:utf-8

list1 = [1, 2, 3, 99, 5, 6, 8, 77, 5, 6, 9, 7, 4]

del list1[1]  # 通过索引删除列表中指定的元素
print(list1)

del list1
print(list1)  # 变量已经从内存地址中完全删去,再次调用这个变量会报错

 结果:


[1, 3, 99, 5, 6, 8, 77, 5, 6, 9, 7, 4]
Traceback (most recent call last):
  File "C:\Users\xx\AppData\Roaming\JetBrains\PyCharmCE2023.1\scratches\scratch_22.py", line 9, in <module>
    print(list1)  # 变量已经从内存地址中完全删去,再次调用这个变量会报错
          ^^^^^
NameError: name 'list1' is not defined. Did you mean: 'list'?

进程已结束,退出代码1

五.列表reverse

  1.reverse的功能:

  • 对当前列表顺序进行反转

  2.reverse的用法:

用法:list.reverse()
参数:无参数传递

演示:


# coding:utf-8

list1 = [1, 2, 3, 99, 5, 6, 8, 77, 5, 6, 9, 7, 4]

list1.reverse()
print(list1)

结果:


[4, 7, 9, 6, 5, 77, 8, 6, 5, 99, 3, 2, 1]

进程已结束,退出代码0
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。