Day 7/100:Python列表

简介: Day 7/100:Python列表

 

python的列表和我上面的歌曲列表是类似的,都是按照一系列特定顺序排列的元素组成的。

 


它属于python内置可变序列。形式上列表的所有元素都放在'[ ]'中,相邻元素用',' 分隔。它里面可以放证书、字符串、列表、元组等任何类型。并且在一个列表内,元素的类型也是允许不同的。因此可以看出列表是非常灵活的。下来我们看看元素的一些特点:

 

列表的创建

列表创建语法格式:

listname = [element1, element2, element13, elementN]

例如:

user = ['张三', 22, '北京', '程序员',]
print(user)
#['张三', 22, '北京', '程序员']
 
num = [1, 2, 3, 4, 5, 6]
print(num)
#[1, 2, 3, 4, 5, 6]

 

说明:使用列表的时候,虽说可以将不同的数据类型放入同一个列表。但是为了提高程序的可读性,一般我们不这么做。一个列表内放的都是同一种类型元素

 

 

创建一个空列表的格式:

emptylist = []


创建一个数值列表:

在python中,数值列表的创建可以使用list()函数直接将range()函数循环出来的结果转换为列表。

#创建一个10-20之间的偶数(不包括20)
num = list(range(10,20,2))
print(num)
 
#[10, 12, 14, 16, 18]

列表的删除

 

列表元素的删除我们可以使用 del 语句,语法格式如下:

del listname[元素索引]

例如:

#创建一个10-20之间的偶数(不包括20)
num = list(range(10,20,2))
print(num)
#[10, 12, 14, 16, 18]
 
#删除num列表第二个元素
del num[2]
print(num)
[10, 12, 16, 18]

也可以使用此方法删除整个列表。前提注意:此列表一定是存在的!

#创建一个10-20之间的偶数(不包括20)
num = list(range(10,20,2))
print(num)
#[10, 12, 14, 16, 18]
 
del num
print(num)
#NameError: name 'num' is not defined


列表的遍历

遍历列表元素是一种很常见的操作,它可以执行查询、处理等操作。关于如何遍历我们有两种方式:

 

1.使用for循环。语法格式如下:

for num in nums:
    print(num)

例如:

#LOL下路部分ADC
ADs = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口',  '圣枪游侠', '赏金猎人']
 
for ad in ADs:
    #遍历打印所有ad
    print(ad)
    
'''
输出结果:
寒冰射手
皮城女警
荣耀行刑官
探险家
法外狂徒
戏命师
暴走萝莉
复仇之矛
深渊巨口
圣枪游侠
赏金猎人
'''

2.使用for循环和enumerate()函数。使用这套组合的好处是可以将元素的索引和值都打印出来。例如:

#LOL下路部分ADC
ADs = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口',  '圣枪游侠', '赏金猎人']
 
for index,ad in enumerate(ADs):
    print(index+1,ad)
 
    
'''
输出结果:
1 寒冰射手
2 皮城女警
3 荣耀行刑官
4 探险家
5 法外狂徒
6 戏命师
7 暴走萝莉
8 复仇之矛
9 深渊巨口
10 圣枪游侠
11 赏金猎人
'''

列表元素添加

 

方法一:

使用append()方法向列表添加元素,只能添加到列表末尾。

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家']
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家']
 
adc.append('麦林炮手')
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '麦林炮手']

方法二:

使用insert()方法向列表添加元素,可以添加到指定位置,但是因为其执行效率低,所以一般这种方法用的不是很多。

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家']
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家']
 
adc.insert(2,'暗夜猎手') #使用insert()方法将新ad添加到索引为2的位置处
print(adc)
#['寒冰射手', '皮城女警', '暗夜猎手', '荣耀行刑官', '探险家']

方法三:

使用extend()方法适用于将一个列表中的元素全部插入到另外一个列表中去。

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家']
sup = ['牛头酋长', '曙光女神', '星界游神', '弗雷尔卓德之心']
 
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家']
print(sup)
#['牛头酋长', '曙光女神', '星界游神', '弗雷尔卓德之心']
 
adc.extend(sup) #使用extend()方法将辅助列表中的全部元素添加到ad列表之后
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '牛头酋长', '曙光女神', '星界游神', '弗雷尔卓德之心']

列表元素删除

 

 

删除有两种一种根据索引删除,一种根据值删除。

 

删除一:根据索引删除,前面说过了,就是按照

  •  
del listname[索引值]


来操作,再来看一下:

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口',  '圣枪游侠', '赏金猎人']
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口', '圣枪游侠', '赏金猎人']
 
#删除最后一位ad
del adc[-1]
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口', '圣枪游侠']
 

删除二:使用值删除就不能再用之前的方法,就要用到remove()方法了。

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口',  '圣枪游侠', '赏金猎人']
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口', '圣枪游侠', '赏金猎人']
 
#删除ad-深渊巨口
adc.remove('深渊巨口')
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '圣枪游侠', '赏金猎人']
 

列表统计学

 

1.计算指定元素出现的次数:使用列表对象的count()方法可以计算出指定元素在列表中出现的次数。

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '皮城女警', '暴走萝莉', '复仇之矛', '荣耀行刑官', '深渊巨口',  '圣枪游侠', '荣耀行刑官', '赏金猎人']
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '皮城女警', '暴走萝莉', '复仇之矛', '荣耀行刑官', '深渊巨口', '圣枪游侠', '荣耀行刑官', '赏金猎人']
 
#统计'荣耀行刑官'出现的次数
num = adc.count('荣耀行刑官')
print(num)
#3
 
#统计'皮城女警'出现的次数
num = adc.count('皮城女警')
print(num)
#2

2.获取指定元素首次出现的下标,使用列表对象的index()方法可以获取指定元素在列表中首次出现的索引。

#LOL下路部分ADC
adc = ['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '皮城女警', '暴走萝莉', '复仇之矛', '荣耀行刑官', '深渊巨口',  '圣枪游侠', '荣耀行刑官', '赏金猎人']
print(adc)
#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '皮城女警', '暴走萝莉', '复仇之矛', '荣耀行刑官', '深渊巨口', '圣枪游侠', '荣耀行刑官', '赏金猎人']
 
#判断'戏命师'第一次出现的位置
ind = adc.index('戏命师')
print(ind)
#5
 
#判断'寒冰射手'第一次出现的位置
ind = adc.index('寒冰射手')
print(ind)
#0

3.统计和。使用sum()函数可以计算列表中所有数字之和。

#期末考试部分成绩
grade = [88,77,99,87,89,78,79,97,98]
#计算考试总分
total = sum(grade)
print('考试总成绩:', total)
#考试总成绩:792

列表排序

 

 

1.使用列表对象的sort()方法进行排序,其中sort()方法有一个参数reverse,其默认代表升序排列。当其值位True时,代表降序排列。

#期末考试部分成绩
grade = [88,77,99,87,89,78,79,97,98]
print('排序之前:', grade)
 
grade.sort()
print('默认升序:', grade)
 
grade.sort(reverse=True)
print('手动将序:', grade)
 
print('初始列表元素顺序改变',grade)
 
'''
排序之前: [88, 77, 99, 87, 89, 78, 79, 97, 98]
默认升序: [77, 78, 79, 87, 88, 89, 97, 98, 99]
手动将序: [99, 98, 97, 89, 88, 87, 79, 78, 77]
初始列表元素顺序改变 [99, 98, 97, 89, 88, 87, 79, 78, 77]
'''

2.使用python内置的sorted()方法进行排序。

#期末考试部分成绩
grade = [88,77,99,87,89,78,79,97,98]
print('排序之前:', grade)
 
sorted(grade)
print('默认降序:', grade)
 
sorted(grade,reverse=True)
print('手动升序:', grade)
 
print('初始列表元素顺序发生改变', grade)
'''
排序之前: [88, 77, 99, 87, 89, 78, 79, 97, 98]
默认降序: [77, 78, 79, 87, 88, 89, 97, 98, 99]
手动升序: [99, 98, 97, 89, 88, 87, 79, 78, 77]
初始列表元素顺序不发生改变 [88, 77, 99, 87, 89, 78, 79, 97, 98]
'''

说明:其实不管是列表sort()方法还是python的sorted()方法,使用方法和处理结果都是一样的。

区别就在于那个列表的sort()方法会改变列表先前元素的排列顺序。而使用sorted()方法则不会改变先前列表元素的排序。

列表就说到此处,有问题欢迎各位小伙伴们留言。

下一期我们看另外一个重要的序列结构-元组

相关文章
|
16天前
|
索引 Python
Python列表
Python列表。
42 8
|
19天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
30 9
|
27天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
55 14
|
29天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
43 10
|
2月前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
2月前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
2月前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
23 1
|
2月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
45 2
|
3月前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
20 1