Python 编程 | 连载 07 - 列表与元组操作

简介: Python 编程 | 连载 07 - 列表与元组操作

一、列表 List 与 元组 Tuple 操作

len 函数

len() 函数可以作用在列表和元组中,返回列表和元组中元素的个数;len() 函数作用在 None、bool 和数字类型会报错。

mix_list = [1, 'stark', [4, 6], ('python', 'java'), {'name': 'thor', 'age': 1500}]
mix_list_length = len(mix_list)
print(mix_list_length)
dict_type = {
    'name': 'thor',
    'from': 'asgard'
}
print(len(dict_type))
string_str = 'HelloPython'
print(len(string_str))
复制代码

image.png

string_str = 'HelloPython'
print(len(string_str))
bool_res = string_str.istitle()
print(len(bool_res))
复制代码

image.png

bool类型调用len函数报错,bool类型没有长度

none_type = None
print(len(none_type))
复制代码

image.png

None 类型没有长度, len() 函数报错

int_type = 1234
print(len(int_type))
复制代码

image.png

整型类型也没有长度

in、not in函数

  • in是判断某个成员是否在该数据结构中
  • not in 就是判断成员不在该数据结构中
heros = ['Thanos', 'Captain America', 'Iron Man', 'Thor', 'Doctor Strange', 'Star Lord']
is_in = 'Spider Man' in heros
print(is_in)
not_in = 'Thanos' in heros
print(not_in)
复制代码

列表(或元组)之间的累加和乘法

列表之间或者元组之间可以进行累加操作,累加操作返回一个新的列表或者元组;列表或者元组可以与整型进行乘法操作并返回一个新的列表或者元组

heros = ('stark', 'steven', 'peter')
heros_add = heros + heros
print(heros_add)
print('长度为:%d'%(len(heros_add)))
heros_time = heros * 10
print(heros_time)
print('长度为:%d'%(len(heros_time)))
复制代码

image.png

heros = ('stark', 'steven', 'peter')
# 元组的 += 和 *= 操作
heros += ('banner',)
print(heros)
heros *= 3
print(heros)
复制代码

image.png

heros = ('stark', 'steven', 'peter')
# 列表的 += 和 *= 操作
heros_list = list(heros)
heros_list += ['loki']
print(heros_list)
heros_list *= 3
print(heros_list)
复制代码

image.png

append 函数

append 函数可以将一个元素添加到当前列表中,没有返回值;append 会将元素添加到列表的末尾;需要注意的是 append 会在原有列表的基础上修改,不会生成新的列表

创建 list_append.py

heros = ['stark', 'steven', 'peter']
print(id(heros))
heros.append('loki')
print(heros)
print(id(heros))
复制代码

image.png

执行 append 操作后,列表元素变化了,内存地址没有变化,说明append是在原有列表基础上做的修改,同时也说明了列表是可变数据类型

mix_list = []
num_list = [1]
num_tuple = (1,)
dict_type = {'name': 'stark', 'age': 40}
mix_list.append(num_list)
mix_list.append(num_tuple)
mix_list.append(dict_type)
print(mix_list)
复制代码

image.png

mix_list = []
num_list = [1]
num_tuple = (1,)
dict_type = {'name': 'stark', 'age': 40}
mix_list.append(num_tuple, num_list, dict_type)
print(mix_list)
复制代码

image.png

append函数一次只能添加一个元素,也就是只能接收一个参数,传入多个参数会报错

insert 插入函数

insert函数可以将元素插入到当前列表中指定的位置上,insert接收两个参数,分别是要添加的元素和要添加的位置

insert与append的区别:

  • append只能添加到列表的结尾,insert可以插入到列表中的任意位置
  • insert不传插入的位置,默认添加到列表的结尾
  • 字符串、列表、元组的位置都是0开始从左往右依次递增的
student_list = [
    {'name': 'stark', 'gender': 'M'},
    {'name': 'peter', 'gender': 'M'},
]
loki = {'name': 'loki', 'gender': 'M'}
student_list.insert(1, loki)
print(student_list)
wanda = {'name': 'wanda', 'gender': 'F'}
student_list.insert(8, wanda)
print(student_list)
复制代码

image.png

count 函数

count函数可以返回指定元素在列表中的个数,接收一个参数,返回一个整型类型;如果要查询的元素不存在于列表中,则返回为0;count函数只会检查完整元素是否存在列表中以及个数

# 在列表中使用count函数
pets = ['皮皮', '小六', '猪猪', '团团', '小墨点', '猪猪', '小六']
name_01 = '猪猪'
count_01 = pets.count(name_01)
print('有%s只宠物的名字叫%s' % (count_01, name_01))
name_02 = '猪'
count_02 = pets.count(name_02)
print('有{}只宠物的名字叫{}'.format(count_02, name_02))
复制代码

image.png

判断列表中字典的个数

pets = [
    {'name': '猪猪'},
    {'name': '皮皮'},
    {'name': '小六'},
    {'name': '猪猪'}
]
name_01 = {'name': '猪猪'}
count_01 = pets.count(name_01)
print('有%s只宠物的名字叫%s' % (count_01, name_01))
name_02 = {'name': '猪'}
count_02 = pets.count(name_02)
print('有{}只宠物的名字叫{}'.format(count_02, name_02))
复制代码

image.png

元组中的 count 函数

pets = ('猪猪', '皮皮', '小六', '猪猪')
print('猪猪有{:d}只'.format(pets.count('猪猪')))
复制代码

image.png

remove 函数与 del 函数

remove 函数可以删除列表中的某个元素,需要传入一个参数既要删除的元素;如果传入的元素在列表中不存在则直接报错,如果列表中被删除的元素有多个,则只删除从左往右数第一个;remove 在原列表基础上进行操作

del 函数是 Python的内置函数,可以将变量从内存中完全删除

pets = ['猪猪', '皮皮', '小六', '猪猪']
print('猪猪有{:d}只'.format(pets.count('猪猪')))
pets.remove('猪猪')
print('猪猪还剩{:d}只'.format(pets.count('猪猪')))
del pets
print(pets)
复制代码

image.png

执行完 del 函数后,变量无法被识别,说明变量已经被完全从内存中删除

reverse 函数

reverse函数的作用是可以对当前列表的顺序进行反转,该函数不需要传递参数,并且是在原列表基础上执行的反转

pets = ['猪猪', '皮皮', '小六']
print('反转前的列表顺序为:{}'.format(pets))
pets.reverse()
print('反转后的列表顺序为:%s' % pets)
复制代码

image.png


相关文章
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
24天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
53 14
|
2月前
|
索引 Python
Python列表
Python列表。
56 8
|
2月前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
46 9
|
2月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
78 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
119 2
|
2月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
138 10
|
2月前
|
人工智能 数据挖掘 开发者
探索Python编程之美:从基础到进阶
本文是一篇深入浅出的Python编程指南,旨在帮助初学者理解Python编程的核心概念,并引导他们逐步掌握更高级的技术。文章不仅涵盖了Python的基础语法,还深入探讨了面向对象编程、函数式编程等高级主题。通过丰富的代码示例和实践项目,读者将能够巩固所学知识,提升编程技能。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上Python编程的美妙旅程吧!

热门文章

最新文章