Python学习day3

列表

1.列表的创建

print(list(range(3,15,2)))
#同样包左不包右
print(list(range(15,3,-1)))
#可以倒序,要搭配负的步长

a=[x*2 for x in range(10) if x%2==0]
print(a)
#可以通过list创建符合条件的复杂列表

'''
一共四种创建方法
1.直接创建 a=[...]
2.list函数创建 a=list()
3.range创建 a=list(range(x,y,z))   与slice的格式相同(可以反着创建)
4,推导式创建 a=[x for x in range() if x...]
'''

2.列表元素的增加

b=[10,20,30,40]
print(id(b))
b.append(50)
print(b)
print(id(b))

c=[10,20,30,40]
print(id(c+[50]))    #"+"会新建一个新的对象
print(id(c))

a=[10,20,30,40]
a.extend([50,60])
print(a)
#可以连接两个列表,不产生新的对象,接续到尾部

a=[10,20,30,40]
a.insert(2,100)
print(a)
#insert()选择插入的位置以及插入的元素,非必要不要采用,因为会需要大量的变动,复杂度过高
'''
所有在非尾部进行操作的命令都会影响速度,例如insert,pop,remove
'''

3.列表元素的删除

#实际上所有的删除函数本质都是元素的拷贝,所以操作效率很低
a=[10,20,30,40,50]
del a[2]
print(a)

b=a.pop()
print(b)
#删除被返回指定元素,不制定就是最后一项

a.remove(20)
print(a)
#删除列表内首次出现的该元素

3.列表元素的索引

a=[10,20,30]
print(id(a))
a[1]=50 #列表可以修改,所以可以赋值
print(id(a))
print(a[1])
#索引范围要在len()以内,不然会报错

a=[10,24,10,23,45]
b=a.index(10)
c=a.index(10,1,3)
print(b,c)
#index()可以指定索引范围,返回同名字符的位置,类似字符串操作中的find

print(len(a))
print(a.count(10))  #可以用于成员资格的判断,返回0则说明不存在列表内
print(23 in a)  #成员资格判断更简单的方法
#print(100 not in a)    不在的判断

4.列表slice

#与字符串slice完全相同
a=[1,2,3,4,5,6]
print(a[::-1])
print(a[2:4])   #end可以超出len上限   a[1:30]
print(a[::2])

5.列表排序

a.sort()
print(a)
print(id(a))

a=[10,30,50,20,40]
a.sort(reverse=True)
print(a)
#reverse是降序排列

a=[10,30,50,20,40]
print(a)
print(id(a))
random.shuffle(a)
print(a)
#以上排序语句都不会生成新的对象,调用的是列表对象

a=[10,30,50,20,40]
print(id(a))
a=sorted(a)
#生成新的对象,id不同,新对象需要重复指向变量

a=[10,30,50,20,40]
c=reversed(a)   #也可以使用c=sorted(a,reverse=True) 这样会直接生成一个对象而非迭代器
print(list(c))

6.多维列表

a=[
    ["jim",18,2000,"上海"],["chen",19,3000,"北京"],["jack",21,4000,"深圳"]
  ]
#字符串一定要加引号!!
for i in range(3):  #外部循环是总列表中的元素个数
    for j in range(4):  #内部循环是子列表中的元素个数
        print(a[i][j],end="\t")
        #循环打印输出,结尾退格符
    print("")
    #加一个空字符,输出换行

多维列表中的子列表应该是按行储存,按列索引再按行精准到目标

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值