列表和元组

本文深入探讨Python中列表和元组的创建、操作及应用,包括排序、复制、遍历等常见方法,以及列表解析式的高效使用。同时,讲解了列表作为函数参数和返回值的注意事项,对比了列表与元组的特性。

序列
len sum min max

列表

  1. 创建
  2. 访问
    a[index]
  3. 操作符
>>> 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]
  1. 遍历
for x in alist:
	print(x)
for i in range(len(alist))print(x)
  1. 常用方法
    原地修改
    在这里插入图片描述
    排序
    同种数据类型
    原位置排序,排序结果改变原列表,默认升序排列
#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]

复制
在这里插入图片描述
在这里插入图片描述

  1. 内置函数
>>> names=['as','ASQ','SDFVA','ZZ']
>>> sorted(names)  #默认升序(首字母)
['ASQ', 'SDFVA', 'ZZ', 'as']
>>> sorted(names,reverse=True)  #降序
['as', 'ZZ', 'SDFVA', 'ASQ']
  1. 列表解析式
    产生一个由表达式求值结果组成的列表。
    一种创建顺序元素列表的简洁方式。
#同功能
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
  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])  #认为是列表的变化,而不是元组的变化
## 软件功能详细介绍 1. **文本片段管理**:可以添加、编辑、删除常用文本片段,方便快速调用 2. **分组管理**:支持创建多个分组,不同类型的文本片段可以分类存储 3. **热键绑定**:为每个文本片段绑定自定义热键,实现一键粘贴 4. **窗口置顶**:支持窗口置顶功能,方便在其他应用程序上直接使用 5. **自动隐藏**:可以设置自动隐藏,减少桌面占用空间 6. **数据持久化**:所有配置文本片段会自动保存,下次启动时自动加载 ## 软件使用技巧说明 1. **快速添加文本**:在文本输入框中输入内容后,点击"添加内容"按钮即可快速添加 2. **批量管理**:可以同时编辑多个文本片段,提高管理效率 3. **热键冲突处理**:如果设置的热键与系统或其他软件冲突,会自动提示 4. **分组切换**:使用分组按钮可以快速切换不同类别的文本片段 5. **文本格式化**:支持在文本片段中使用换行符制表符等格式 ## 软件操作方法指南 1. **启动软件**:双击"大飞哥软件自习室——快捷粘贴工具.exe"文件即可启动 2. **添加文本片段**: - 在主界面的文本输入框中输入要保存的内容 - 点击"添加内容"按钮 - 在弹出的对话框中设置热键分组 - 点击"确定"保存 3. **使用热键粘贴**: - 确保软件处于运行状态 - 在需要粘贴的位置按下设置的热键 - 文本片段会自动粘贴到当前位置 4. **编辑文本片段**: - 选中要编辑的文本片段 - 点击"编辑"按钮 - 修改内容或热键设置 - 点击"确定"保存修改 5. **删除文本片段**: - 选中要删除的文本片段 - 点击"删除"按钮 - 在确认对话框中点击"确定"即可删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值