Python自学——列表

文章介绍了Python中可迭代对象的概念,包括如何检查是否可遍历,以及列表的生成、常用操作如增加、删除、修改和查询。此外,还详细讲解了列表的遍历方式,如enumerate函数的使用,以及排序和乱序操作,包括sort和sorted函数的应用。
摘要由CSDN通过智能技术生成

什么是可迭代?

1、它是能够一次返回一个成员的对象,也就是可以 for…in 遍历的;

2、所有的序列类型(也就是后面要说到的 Sequence),都是可迭代对象,如 list、str、tuple,还有映射类型 dict、文件对象等非序列类型也是可迭代对象;

不可迭代的对象:数字类型int float complex等。

#查是否可遍历:
import collections
nums = []/()/...
result = isinstance(nums,collections.Iterable)
print(result)

列表生成:

1、直接生成:l = range(0,10)生成0-9的列表

2、由一个变成另一个:s=[表达式 for 元素 in 原列表 if ...]

列表常用操作:

增加:.extend(iterable);.append(object) 改变原列表;.insert(index,object)在目标位置增加Object,会改变原列表;乘法和加法(列表只能与列表相加)与字符串相同

删除:del,del(index);.pop(index = -1)删除index位置的元素并返回被删除的元素,index默认是-1也就是列表中的最后一个元素。这两个都会改变原列表

改:list[index]=xx

查:list[index];list.index(object,start,end);list.count(obect);list[::]

遍历列表:

for item in list

print(item)结果是元素;

for index in range(len(list)):

print(index,list[index])结果是索引 元素;

由list创建索枚举对象:就是把可遍历的数据对象组合为一个索引序列并且把下标和数据同时输出

enumerate(seq[,start=0])start:下标起始位置

l=['a','b','c']

print(s=enumerate(l,1))

[(1,'a'),(2,'b'),(3,'c')]

遍历枚举对象:

①for index,value in s:

print(index,value)

1 a

2 b

3 c

②生成迭代器:

iterL=iter(s)

print(next(iterL)):使用next调用这个迭代器 结果是1 a

print(next(iterL)):2 b

或者

for item in iterL:

print(item)     结果是1 a

print(item)     2  b

生成的迭代器本身也可迭代。

这两个命令输出相同。

不能多次使用,只能使用一次(使用一次之后指针已经到要被遍历的集合以外了)

排序:

1、sorted(可迭代对象,key,reverse)reverse默认是false,升序。不会改变原列表

res=sorted(l)

print(res,l)返回的是新列表

如果列表里面是元组[(a,b),(c,d)]默认按第一个元素进行比较,也就是a和c比较,如果第一个元素相同,才进行下一个元素比较。那么怎么指定元素呢?

l = [1, 3, 2, 6, 4, 5]
l = [("sz", 18),  ("sz2", 16), ("sz1", 17), ("sz3", 15)]
def getKey(x):
    return x[1]
res = l.sort(key=getKey, reverse=True)
print(res, l)

2、sort 会改变原列表

res=sort(l)

print(res,l)结果是none和排好序的l

乱序:

import random

res = random.shuffle(l)会改变原列表

反转:

1.reverse 会改变原列表

res = l.reverse(l)

2.切片

res=l[::-1]

不改变原列表 res就是反转后的新列表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值