关于列表的一些操作

获取元素的索引

lst = ['we',123 ,'ppt','chat',123]

print(lst.index(123)) # 获取指定元素的索引,如果列表中存在N个相同元素,只返回相同元素中的第一个元素的索引

print(lst.index('chat',1,4)) # 可以通过索引的范围查找,list.index('要查找的对象',star,stop)  [star,stop) 左闭右开区间

获取列表中的元素

print(lst[2])#获取索引为2的元素  (正向索引:0,1,2,3....n)

print(lst[-2])# 获取倒数第2个(索引为-2)的元素 (反向索引:-1.-2.-3....-n)

获取列表中的多个元素(切片操作)

"""

切片语法格式: 列表名[start:stop:step]  切片范围[start,stop)  step默认为1,    

step为正数时:从start开始往后计算切片                                                                                                                           [:stop:step] 切片的第一个元素默认时列表的第一个元素                                                                                         [start::step] 切片的最后一个元素默认时列表最后一个元素    

step为负数时:从start开始往前计算切片                                                                                                                           [:stop:step] 切片的第一个元素默认时列表的最后一个元素                                                                       [start::step] 切片的最后一个元素默认为列表的第一个元素

"""

lst1 = [100,200,300,400,500,600,700,800,900]

print(lst1[1:6])    #输出结果:[200, 300, 400, 500, 600]

print(lst1[1:6:2])    #输出结果:[200,400,600]

print(lst1[:6:2])    #输出结果:[100,300,500]

print(lst1[2::2])    #输出结果:[300,500,700,900]

print(lst1[::-1])    #输出结果:[900, 800, 700, 600, 500, 400, 300, 200, 100]  倒序

print(lst1[6:1:-1])    #输出结果:[700,600,500,400,300]

print(lst1[6::-2])    #输出结果:[700,500,300,100]

print(lst1[6:0:-2])    #输出结果:[700, 500, 300]

列表元素的增加操作

append()   在列表的末尾添加一个元素

extend()  在列表的末尾至少添加一个元素

insert() 在列表的任意位置添加一个元素

切片 在列表的任意位置添加至少一个元素

lst = [10,22]

lst.append('hello')

print(lst)#[10, 22, 'hello']

## append 与 extend的区别

lst1 = ['a','b',12]

lst2 = ['welcome','hello']

lst1.append(lst2)#把lst2整个列表作为一个元素加入lst1

print(lst1)    #['a', 'b', 12, ['welcome', 'hello']]

lst1 = ['a','b',12]

lst1.extend(lst2)    #把lst2的元素一个个加入lst1

print(lst1)    # ['a', 'b', 12, 'welcome', 'hello']

## insert

lst = ['ww',23.10,30,'A']

lst.insert(1,90)    # 在索引为1的位置上添加元素90

print(lst)    # ['ww', 90, 23.1, 30, 'A']

## 切片

lst = [1,2,3]

lst1 = ['a','b','c']

lst[1:] = lst1    # 把列表lst中从索引1开始的位置都替换为lst1中元素

print(lst)    # [1, 'a', 'b', 'c']

列表元素删除操作

"""

remove(指定元素):1.一次删除一个元素                                                                                                                       2.重复元素只删除第一个                                                                                                               3.元素不存在抛出ValueError

pop(索引):1.删除一个指定索引位置上的元素                                                                                                  2.指定索引不存在抛出IndexError                                                                                                  3.不指定索引时,默认删除列表中最后一个元素

切片:1.通过切片截取你想要的那部分,产生一个新的列表对象                                                                 2.通过将原列表中指定不要的部分用[]替代

clear():清空列表

del: 删除整个列表对象

"""

remove()

lst2 = [10,20,30,40,50,60,70,80,90,30]

lst2.remove(30)

print(lst2)    #输出结果[10, 20, 40, 50, 60, 70, 80, 90, 30]

lst3 = [1,2,3,4,5,6,7,8]

pop()

lst3.pop(3)

print(lst3)    #输出结果[1, 2, 3, 5, 6, 7, 8]

lst3.pop()    # 如果不指定参数,将删除列表中的最后一个元素

print(lst3)    #输出结果[1, 2, 3, 5, 6, 7]

切片

lst4 = [1,2,3,4,5,6,7,8]

new_lst = lst4[1:3]

print(f'原列表:{lst4}')    #输出结果[1,2,3,4,5,6,7,8]

print(f'原列表:{new_lst}')    #输出结果[1,4,5,6,7,8]


不产生新的列表对象,而是删除原列表中的内容:

lst4[1:3]=[]# 将原列表中[1,3)的位置用[]替代

print(lst4)# 输出结果[1, 4, 5, 6, 7, 8]

clear & del

lst3.clear()

print(lst3)  # []

del lst4    # del语句,将列表对象删除

# print(lst4)     # NameError: name 'lst4' is not defined  因为对象都不存在了

列表元素的修改操作

"""

1、为指定索引的元素赋予一个新值                                                                                                                  2、为指定的切片赋予一个新值

"""

lst5 =[10,20,30,40,50,60]

lst5[2] ='三十'      #将索引为2的元素修改为‘三十’

print(lst5)    #输出结果 [10, 20, '三十', 40, 50, 60]

lst5[1:3] = ['twenty','thirty']

print(lst5)    # 输出结果[10, 'twenty', 'thirty', 40, 50, 60]

lst5[3:4] = ['forty','forty-one','forty-two']

print(lst5)    # 输出结果[10, 'twenty', 'thirty', 'forty', 'forty-one', 'forty-two', 50, 60]

列表的排序操作

"""

1、不产生新的列表对象:调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True, 进行降序排序

2、产生新的列表对象:调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变

"""

print('-------------------使用sort()排序,不产生新对象(以下例子中可以看出前后id相同)-------------------------')

lst = [30,12,4,2,1,6,290,22,3]

print('排序前的列表', lst, id(lst))    #输出结果:排序前的列表[30, 12, 4, 2, 1, 6, 290, 22, 3] 2449346640584

lst.sort()

print('从小到大排序后的列表', lst, id(lst))    #输出结果:从小到大排序后的列表[1, 2, 3, 4, 6, 12, 22, 30, 290] 2449346640584

lst.sort(reverse=True)

print('降序排序后的列表', lst, id(lst))    #输出结果:降序排序后的列表[290, 30, 22, 12, 6, 4, 3, 2, 1] 2449346640584

print('-------------------使用内置函数sorted()排序,将产生一个新的列表对象,原列表不发生改变---------------------')

lst = [22,1,33,44,11,99,66,32]

print('原列表', lst)    # 原列表[22, 1, 33, 44, 11, 99, 66, 32]

 new_lst = sorted(lst)

print('重新输出原列表',lst)    # 重新输出原列表[22, 1, 33, 44, 11, 99, 66, 32]

print('排序后的列表',new_lst)    # 排序后的列表[1, 11, 22, 32, 33, 44, 66, 99]

# 实现降序排序

new_lst = sorted(lst,reverse=True)

print(new_lst)     # [99, 66, 44, 33, 32, 22, 11, 1]

列表生成式(列表推导式)


l1 = []

for i in range(1,10):

l1.append(i)

# 以上写法可以用列表推导式简写:

l2 =[i for i in range(1,10)]

print(f'l1:{l1}')

print(f'l2:{l2}')

# 加判断条件  满足偶数条件才放到列表当中

l3 = [i for i in range(1,10)if i%2==0]

print(f'l3:{l3}')


# 包含循环嵌套和判断筛选

##需求描述:从列表中取到偶数,得到一个新列表

l5 = [[1,2,3], [4,5,6], [7,8,9]]

l6 = []

for y in l5:

    for x in y:

        if x%2 ==0:

            l6.append(x)

print(f'l6:{l6}')

##写成列表推导式

l7 = [x for y in l5 for x in y if x%2==0]

print(f'l7:{l7}')

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

推荐阅读更多精彩内容