一句废话都没有的Pycharm(五):列表

一句废话都没有的Pycharm(五):列表

介绍

  1. 列表
  2. 列表的创建
  3. 列表的查询
  4. 列表的增删改
  5. 列表元素的排序
  6. 列表的合并
  7. 列表生成式

1.列表

列表相当于其他语言中的数组,可存储多个元素,方便了程序对这些元素的操作。
列表内可以存字符串,(int型、float型)数据等等不同类型的对象,相当于,背包里可以放杯子、纸巾等等。
例如:

list=['hi','hello',4,2.999]

列表的特点:

在这里插入图片描述

索引时,正逆都可以用。

索引(正 )0123
元素‘hi’‘hello’42.999
索引(逆 )-4-3-2-1

2. 列表的创建

需要使用中括号,元素间用逗号隔开。
两种创建方式:

  1. 使用方括号创建列表
  2. 使用内置函数list()创建列

代码演示:

#使用方括号创建列表
lis=[123,'we',23.89]
print(lis)
#使用内置函数list()创建列表
lis1=list([123,'we',23.89])
print(lis1)
print(lis1[0],lis1[-3])#正序索引的逆序索引都可以

结果演示:
在这里插入图片描述

3. 列表的查询

骨骼图:
在这里插入图片描述

代码展示:

#列表
#使用方括号创建列表
lis=[123,'we',23.89]
print(lis)
#使用内置函数list()创建列表
lis1=list([123,'we',23.89,'we'])
print(lis1)
print(lis1[0],lis1[-3])#正序索引的逆序索引都可以

#查找
#(从元素)获取元素的索引index()
print(lis1.index('we'))#查询对象重复存在于列表中,只输出重复元素的第一个索引
print(lis1.index('we',1,3))#在索引1-3中查找,但是不包括索引3
#print(lis1.index('are'))#查询对象不存在于列表中,输出ValueError

#(从索引)获取单个元素
print(lis1[1])#正向索引
print(lis1[-2])#逆向索引
#print(lis1[6])#索引不存在输出IndexError

#获取多个元素
lis2=[1,2,3,4,5,6,7,8,9]
print(lis2)
print(lis2[2:7])#[2,5)左闭右开
print(lis2[2:7:2])#step为2
print(lis2[-3:-8:-2])#逆序输出
print(lis2[::-1])#逆序输出

#判断元素是否在列表中
print(1 in lis2)
print(10 not in lis2)

#遍历
'''
for 迭代变量 in 列表名:  
     操作
'''
for s in lis1:
    print(s)

结果展示:
在这里插入图片描述

4.列表的增删改

4.1增

骨骼图:
在这里插入图片描述
代码展示:

#增
#append
lis3=[1,2,3]
print(lis3)
lis3.append(56)#在列表末尾添加一个元素
print(lis3)
lis4=['hi','lihuanying']
lis3.append(lis4)
print(lis3)
'''输出:1, 2, 3, 56, ['hi', 'lihuanying']],
可以发现append()将lis4看作一个元素添加到lis3后了'''
#extend
lis3=[1,2,3]
lis3.extend(lis4)#在列表末尾至少添加一个元素
print(lis3)#输出结果为:[1, 2, 3, 'hi', 'lihuanying']
#insert
lis3=[1,2,3]
lis3.insert(1,5)# 在列表1位置添加一个元素,原来元素后移
print(lis3)
#切片
lis3[2:3]=lis4#2及之后的元素被切掉,且被lis4替换
print(lis3)

结果:在这里插入图片描述
4.2删

骨骼图:
在这里插入图片描述
代码演示:

#删
#remove
lis5=[1,1,2,3,4,4,5]
print(lis5)
lis5.remove(1)#一次删除一个,重复元素的话,只删第一个
print(lis5)
#lis5.remove(7)#不存在的话,输出ValueError
#pop
lis5.pop(3)#删除指定索引上的元素
print(lis5)
#lis5.pop(7)#索引不存在时,输出IndexError
lis5.pop()#不指定索引时,删列表最后一个
print(lis5)
#切片
lis5=[1,1,2,3,4,4,5]
print(lis5)
lis5[2:5]=[]
print(lis5)
#清空列表
lis5.clear()
print(lis5)
#删除列表
del lis5
#print(lis5)#NameError: name 'lis5' is not defined

结果:
在这里插入图片描述
4.3 改

  • 给指定索引元素赋新值
  • 给指定切片元素赋新值

代码:

#改
#给指定索引元素赋新值
lis5=[1,1,2,3,4,4,5]
print(lis5)
lis5[1]=9
print(lis5)
#给指定切片元素赋新值
lis5[1:4]=[6,7,8]
print(lis5)

结果展示:
在这里插入图片描述

5. 列表元素的排序

骨骼图:
在这里插入图片描述
代码展示:

#排序
#sort(),默认升序
lis6=[2,4,3,7,5,8,1,9,0]
print(lis6,id(lis6))
lis6.sort()
print(lis6,id(lis6))#id相同,说明在原列表内排序
lis6.sort(reverse=True)#降序
print(lis6,id(lis6))
#内置函数sorted(),默认升序
lis6=[2,4,3,7,5,8,1,9,0]
newlis=sorted(lis6)
print(lis6,id(lis6))
print(newlis,id(newlis))#id不相同,会产生一个新的列表对象
newlis1=sorted(lis6,reverse=True)
print(newlis1,id(newlis))#降序

结果:
在这里插入图片描述

6. 列表的合并

列表的合并结果为字典形式。

#合并两个列表,合并后为字典形式
constellation=['白羊座','金牛座','双子座']
nature=['热情奔放','踏实靠谱','风趣幽默']
co=dict(zip(constellation,nature))
print(co)

结果:
在这里插入图片描述

7.列表生成式

列表生成式是生成列表的公式。

语法

i*i for i in range(15)

在这里插入图片描述

为列表元素的表达式,可自定义。语法中range(1,5),则s为[1,2,3,4],进一步输出为s*s:[1,4,9,16]。range内可自行更改。

代码演示:

#列表生成式
list=[s*s for s in range(1,5)]
print(list)

结果
在这里插入图片描述
例子,输出为[1,3,5,7,9],应怎么定义 列表生成式?

解:代码如下:

#列表生成式
list=[s*s for s in range(1,5)]
print(list)
#输出为[1,3,5,7,9],应怎么定义 列表生成式?
list=[(s-1)*2+1 for s in range(1,6)]
print(list)

#刚学python的小朋友们,敲代码时小心冒号哦。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值