作为一个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() #打印完一行,换行