序列
len sum min max
列表
- 创建
- 访问
a[index] - 操作符
>>> alist=[3,4,5]
>>> alist=alist+[7]
>>> alist
[3, 4, 5, 7]
>>> alist=[3, 4, 5, 7]
>>> alist=alist*3
>>> alist
[3, 4, 5, 7, 3, 4, 5, 7, 3, 4, 5, 7]
- 遍历
for x in alist:
print(x)
for i in range(len(alist)):
print(x)
- 常用方法
原地修改

①排序
同种数据类型
原位置排序,排序结果改变原列表,默认升序排列
#sort()方法
>>> names=['ASQ', 'SDFVA', 'ZZ', 'as']
>>> names.sort(reverse=True)
>>> names
['as', 'ZZ', 'SDFVA', 'ASQ']
#内置函数
>>> names=['as','ASQ','SDFVA','ZZ']
>>> sorted(names) #默认升序(首字母)
['ASQ', 'SDFVA', 'ZZ', 'as']
>>> sorted(names,reverse=True) #降序
['as', 'ZZ', 'SDFVA', 'ASQ']
#将列表中的所有元素按照它们的绝对值大小进行排序,绝对值相同的还保持原来的相对位置,
#打印排序后的列表(绝对值大小仅作为排序依据,打印出的列表中元素仍为原列表中的元素)。
alist=list(map(int,input().split()))
print(sorted(alist, key=abs))
>>>1 -1 2 -2
[1, -1, 2, -2]
②复制


- 内置函数
>>> names=['as','ASQ','SDFVA','ZZ']
>>> sorted(names) #默认升序(首字母)
['ASQ', 'SDFVA', 'ZZ', 'as']
>>> sorted(names,reverse=True) #降序
['as', 'ZZ', 'SDFVA', 'ASQ']
- 列表解析式
产生一个由表达式求值结果组成的列表。
一种创建顺序元素列表的简洁方式。
#同功能
alist=[x*x for x in range(10)]
blist=[]
for x in range(10):
blist,append(x*x)
clist= list(map(lambda x: x*x,range(10)))
>>> alist=[x for x in range(5)]
>>> alist
[0, 1, 2, 3, 4]
>>> blist=[0.5*x for x in alist]
>>> blist
[0.0, 0.5, 1.0, 1.5, 2.0]
>>> clist=[x for x in blist if x<=1.5]
>>> clist
[0.0, 0.5, 1.0, 1.5]
#字符串转数字
>>> x=['1','2','3']
>>> [int(i) for i in x]
[1, 2, 3]
>>> x=['1','2','3']
>>> list(map(int, x))
[1, 2, 3]
#转置
>>> i=[(1,2),(2,3),(3,4)]
>>> j=[[x,y] for (y,x) in i]
>>> j
[[2, 1], [3, 2], [4, 3]]
>>> k=[(x,y) for (y,x) in i]
>>> k
[(2, 1), (3, 2), (4, 3)]
>>> k[2][1]
3
>>> k[0][1]
1
- 常用算法
①字符串列表中最长的字符串
max(iterable, *[, default=obj, key=func])
max():将字符对应编码最大的返回
>>> names=['as','ASQ','SDFVA','ZZ']
>>> longest=max(names,key=len)
>>> longest
'SDFVA'
>>> max(names)
'as'
②删除所有指定元素

>>> values=[x for x in range(98,104)]
>>> values=[x for x in values if x!=100]
>>> values
[98, 99, 101, 102, 103]
③删除匹配项
>>> values=[x for x in range(98,104)]
>>> values
[98, 99, 100, 101, 102, 103]
>>> values=[x for x in values if x<=100]
>>> values
[98, 99, 100]
在函数中使用列表
-
不可变对象:对象所指向的内存中的值不能被改变,当改变这个变量的时候,原来指向的内存中的值不变,变量不再指向原来的值,而是开辟一块新的内存,变量指向新的内存。
一旦创建就无法修改数据值的数据类型:整数、浮点数、复数、字符串、逻辑值、元组 -
可变对象:对象指向的内存中的值会改变,当更改这个变量的时候,还是指向原来内存中的值,并且在原来的内存的值进行原地修改。
可以随时改变的数据类型: 列表、字典、集合
可变类型的变量操作需要注意,多个变量通过赋值引用同一个可变类型对象时,通过其中任何一个变量改变了可变类型对象,其他变量也随之改变。

>>> A=[1,2,3,4]
>>> B=[A]*3
>>> print(B)
[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
>>> A[2]=45
>>> print(B)
[[1, 2, 45, 4], [1, 2, 45, 4], [1, 2, 45, 4]]
①列表作为函数参数
def multiply(values,factor):
for i in range(len(values)):
values[i]*=factor
aList=[1,2,3,4,5]
multiply(aList,2)
print(aList)
>>>[2, 4, 6, 8, 10]
②列表作为函数返回
def multiply(values,factor):
result=[]
for i in values:
result.append(i*factor)
return result
aList=[1,2,3,4,5]
bList=multiply(aList,2)
print(aList)
print(bList)
>>>[1, 2, 3, 4, 5]
>>>[2, 4, 6, 8, 10]
元组
元组属于不可变序列,可哈希,一旦创建不可修改。
所有元素放在一对()中
①创建
>>>a_tuple=('a','b','fver','z','example)
>>>a_tuple
('a','b','fver','z','example)
>>>a=(3)
>>>a
3
#包含一个元素的元组,最后必须多写一个,
>>>a=(3,)
>>>a
(3,)
>>>a=3,
>>>a
(3,)
>>>a=() #空元组
②tuple函数 将字符串或列表转换为元组
>>>tuple('asdfg')
('a','s','d','f','g')
>>>a_list=[1,2,3,4]
tuple()


注:
>>> x=(1,2,[3,4])
>>> x[2]
[3, 4]
>>> x[2].append(6)
>>> x
(1, 2, [3, 4, 6]) #认为是列表的变化,而不是元组的变化
本文深入探讨Python中列表和元组的创建、操作及应用,包括排序、复制、遍历等常见方法,以及列表解析式的高效使用。同时,讲解了列表作为函数参数和返回值的注意事项,对比了列表与元组的特性。
173

被折叠的 条评论
为什么被折叠?



