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 语句,语法格式如下:

dellistname[元素索引]

例如:

#创建一个10-20之间的偶数(不包括20)

num = list(range(10,20,2))

print(num)

#[10, 12, 14, 16, 18]

#删除num列表第二个元素

delnum[2]

print(num)

[10,12,16,18]

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

#创建一个10-20之间的偶数(不包括20)

num = list(range(10,20,2))

print(num)

#[10, 12, 14, 16, 18]

delnum

print(num)

#NameError: name 'num' is not defined

列表的遍历

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

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

fornuminnums:

print(num)

例如:

#LOL下路部分ADC

ADs = ['寒冰射手','皮城女警','荣耀行刑官','探险家','法外狂徒','戏命师','暴走萝莉','复仇之矛','深渊巨口','圣枪游侠','赏金猎人']

foradinADs:

#遍历打印所有ad

print(ad)

'''

输出结果:

寒冰射手

皮城女警

荣耀行刑官

探险家

法外狂徒

戏命师

暴走萝莉

复仇之矛

深渊巨口

圣枪游侠

赏金猎人

'''

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

#LOL下路部分ADC

ADs = ['寒冰射手','皮城女警','荣耀行刑官','探险家','法外狂徒','戏命师','暴走萝莉','复仇之矛','深渊巨口','圣枪游侠','赏金猎人']

forindex,adinenumerate(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)

#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '牛头酋长', '曙光女神', '星界游神', '弗雷尔卓德之心']

列表元素删除

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

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

dellistname[索引值]

来操作,再来看一下:

#LOL下路部分ADC

adc = ['寒冰射手','皮城女警','荣耀行刑官','探险家','法外狂徒','戏命师','暴走萝莉','复仇之矛','深渊巨口','圣枪游侠','赏金猎人']

print(adc)

#['寒冰射手', '皮城女警', '荣耀行刑官', '探险家', '法外狂徒', '戏命师', '暴走萝莉', '复仇之矛', '深渊巨口', '圣枪游侠', '赏金猎人']

#删除最后一位ad

deladc[-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()方法则不会改变先前列表元素的排序。

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容