Python---列表(List)

Python---列表(List),第1张

Python---列表(List)

作为一个Python初学者,我想通过写博客的方式来记录下来自己成长的过程,同时也分享一下自己学习到的知识。以下都是一个Python初学者对Python语言的一些浅见和个人理解。

‘’'1.①列表的创建
基本语法[]创建
list()创建
②range()创建整数列表
语法格式:range([start] end [step])
start参数:可选,表示起始数字,默认是0
end参数:必选,表示结尾数字
step参数:可选,表示步长,默认为1
③使用列表推导式可以非常方便的创建列表

‘’’

#test1(列表的创建)
a = [10,20,"xixi",'ayg'] #列表里的元素可以为任何类型,不必为同一类型
print(a)

a = list()   #创建一个空的列表对象
a = list(range(10))
print(a)

a = list("xixi,ayg")
print(a)

#test2(range())
a = list(range(3,15,2))
print(a)
b = list(range(15,3,-1))
print(b)
c = list(range(3,-10,-1))
print(c)

#test3(列表推导式)
a = [x*2 for x in range(5)]  #循环创建多个元素
print(a)
b = [x*2 for x in range(100) if x%9 == 0]
print(b)

‘’'2.列表元素的增加和删除
当列表增加和删除元素时,列表会自动进行内存管理。但是若增加和删除元素
不是在列表尾部,会使大量的元素位置移动,效率较低。因此,一般只在列表的尾部进
行增加或删除 *** 作
①append()方法:(只能添加一个元素)原地修改列表对象,是真正的列表尾部添加新的元素,速度最快
②+运算符 *** 作:(可以添加多个元素)并不是真正的在尾部添加元素,而是创建新的列表对象,将原列表的元素和新列表的元素
依次复制到新的列表对象中。这样,会涉及大量的复制 *** 作,对于 *** 作大量元素不建议使用
③extend()方法:(可以添加多个元素)将目标列表的所有元素添加到本列表的尾部,属于原地 *** 作,不创建新的列表对象
④insert()插入元素:将指定元素插入到任意指定位置,效率较低
⑤乘法扩展:使用乘法扩展列表,新列表元素是原列表元素的多次重复

⑥del删除:删除列表指定位置的元素
⑦pop()方法:pop()删除并返回指定位置元素,如果未指定位置则默认 *** 作列表最后一个元素
⑧remove()方法:删除首次出现的指定元素,若不存在该元素抛出异常

‘’’

#test1(append())
a = [20,40]
print(a)
a.append(80)  
print(a)

#test2(+)
a = [20,40]
print(id(a))
print(a)
a = a + [50,60]
print(id(a))
print(a)

#test3(extend())
a = [20,40]
print(id(a))
print(a)
a.extend([50,60,70])
print(id(a))
print(a)

#test4(insert())
a = [10,20,30]
print(a)
a.insert(2,100)
print(a)

#test5(乘法扩展)
a = ['ayg',888]
b = a*3
print(b)

#test6(del)
a = [10,20,30]
del a[1]
print(a)

#test7(pop())
a = [10,20,30,40,50]
a.pop()
print(a)
a.pop(1)
print(a)

#test8(remove())
a = [10,20,30,40,50,20,30,20,30]
a.remove(20)
print(a)

‘’‘3.列表元素访问和计数
①通过索引直接访问元素:我们可以通过索引直接访问元素。索引区间在[0,列表长度-1]这个范围,超过这个范围则会抛出异常
②index():获取指定元素首次出现的索引为止。语法是:index(value,[start,[end]])。
其中,start和end指定了搜索的范围
③count()获得指定元素在列表中出现的次数
④len()返回列表长度,即列表中包含元素的个数
⑤in:判断列表中是否存在指定的元素
‘’’

#test1(索引直接访问)
a = [10,20,30,40,50,20,30,20,30]
print(a[2])

#test2(index())
a = [10,20,30,40,50,20,30,20,30]
print(a.index(20))
print(a.index(20,3))
print(a.index(30,5,7))

#test3(count())
a = [10,20,30,40,50,20,30,20,30]
print(a.count(20))

#test4(len())
a = [10,20,30]
print(len(a))

#test5(in)
a = [10,20,30,40,50,20,30,20,30]
print(20 in a)
print(100 not in a)

‘’‘4.①slice切片 *** 作:和之前的字符串切片 *** 作一样
②列表的遍历
‘’’

#test1(slice)
a = [10,20,30]
print(a[:])
print(a[1:3:1])

#test2(遍历)
a = [10,20,30,40,50,60]
for x in a:
    print(x)

‘’‘5.①sort():修改原列表,不建新列表的排序
②sorted():返回新列表,不对原列表做修改
③reversed():不对原列表做任何修改,只是返回一个逆序排列的迭代器对象
④max和min:用于返回列表中最大和最小值
⑤对数值型列表的所有元素进行求和 *** 作,对非数值型列表运算则报错
‘’’

#test1(sort())
a = [20,10,30,40]
print(id(a))
a.sort()  #默认是升序排序
print(a)
print(id(a))
a.sort(reverse=True)  #降序排序
print(a)
import random
random.shuffle(a)   #打乱排序
print(a)

#test2(sorted())
a = [20,10,30,40]
print(id(a))
a = sorted(a)  #默认升序
print(a)
print(id(a))
c= sorted(a,reverse=True)
print(c)
print(id(c))

#test3(reversed())
a = [20,10,30,40]
c = reversed(a)
print(c)
print(list(c))

#test4(max()  min())
a = [40,30,20,10]
print(max(a))
print(min(a))

#test5(sum())
a = [3,10,20,15,9]
print(sum(a))

‘’'6.多维列表

‘’’

#test
a = [
        ["张三",18,50000,"北京"],
        ["李四",19,100000,"深圳"],
        ["王五",20,80000,"上海"],
    ]
for m in range(3):
    for n in range(4):
        print(a[m][n],end = 't')
    print()  #打印完一行,换行

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5700743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存