直接排序
l=['hello','world',' ']
print(l)
#list()为内置的函数
l2=list('nihaozhongguo')
l3=list(range(1,12,3))#从1开始到12结束,步长为3,不包含12
print(l2)
print(l3)
#
print(l+l2+l3)
print(max(l3))
#
print(min(l3))
print(len(l))#求列表长度
print(l2.count('o'))#统计o的个数
print(l2.index('o'))#o在列表l2中第一次出现的位置,默认从0开始
del l3#删除l3
使用for(遍历函数排序)
l=['len','what','ok','right']
for item in l:
print(item)#此时会按顺序依次输出
#用range()与len()
for i in range(0,len(l)):
print(i,'-->',l[i])
#用enumerate()
for index,item in enumerate(l):
print(index,item)
#这里的index是序号,不是索引,可以手动修改,不改默认从0开始
for index,item in enumerate(l,start=1):
#start可以省略不写,改为--->enumerate(l,1):
print(index,item)
列表的相关操作方法
列表的方法 | 描述说明 |
lst.append(x) | 在列表lst最后增加一个元素 |
lst.insert(index.x) | 在列表中第index位置增加一个元素 |
lst.clear() | 清除列表lst中所有元素 |
lst.pop(index) | 将列表lst中第index位置的元素取出,并从列表中删除 |
lst.remove(x) | 将列表lst中出现的第一个元素x删除 |
lst.reverse(x) | 将列表lst中的元素反转 |
lst.copy() | 拷贝列表lst中所有元素,生成一个新的元素 |
lst.insert(_index:1,_object:100)#在索引为1的位置上插入100
lst=['h','l']
print('原',lst,id(lst))
lst.append('sql')
print('便',lst,id(lst))
#增加元素之后元素个数改变,内存地址不变
lst.remove('h')
print(lst,id(lst))
#删除元素之后元素个数改变,内存地址不变
print(lst.pop(1))
print(lst)
#这里先将sql提出然后再删除,最后只有l
将列表元素清除后地址仍然不改变,使用lst.copy时地址改变
列表排序:列表对象的sort方法,内置函数sorted()
@1——sort
lst=['A','B','C','D']
#lst.sort(Key=None,reverse=False)
#Key表示排序的规则,reverse表示排序方式(默认为升序,为Ture时降序)
#sorted(lst,Key=None,reverse=False)
#lst表示的是排序的对象
lst.sort()#默认排序
print('升序',lst)
lst.sort(reverse=True)
#升序先排大写字母,再排小写字母
print('降序',lst)
#忽略大小写排序
lst.sort(key=str.lower)#表示都转为小写
print(lst)
#参数不加括号,调用加括号
print('-'*40)
asc_lst=sorted(lst)
print('s',asc_lst)
print(lst)
desc_lst=sorted(lst,reverse=True)
print('j',lst)
#忽略大小写进行排序
new_lst=sorted(lst,key=str.lower)
print(lst)
print(new_lst)
#对于sorted而言无论升序还是降序对原来的列表顺序不改变
import random#导入随机数
lst=[item for item in range(1,11)]
print(lst)
#前一个item表示列表中的元素
lst=[item*item for item in range(1,11)]
print(lst)
#让列表中的元素每次翻倍
lst = [random.randint(1, 100) for _ in range(10)]
#从1~100中随机生成10个数
print(lst)
lst=[i for i in range(10) if i%2==0]#生成偶数
print(lst)
#选择符合条件的数组成新的列表
#二维列表
lst=[
['周长','参数','面积'],
['周长',102,103],
['参数',104,504],
['面积',12,24]
]
print(lst)
#遍历列表使用双层for循环
for row in lst:#行
for item in row:#列
print(item,end='\t')
print()#换行
lst2=[[j for j in range(5)]for i in range(4)]
print(lst2)
#元组创建
#小括号创建元组
t=('hello',[10,20,30],'python','world')
print(t)
#用内置函数tuple()创建元组
t=tuple('helloworld')
print(t)
t=tuple([10,20,30,40])
print(t)
print('10在元组中是否存在:',(10 in t))
print('10在元组是不存在:',(10 not in t))
print('最大值',max(t))
print('最小值',min(t))
print('len:',len(t))
print('t.index:',t.index(10))#索引
print('t.count',t.count(10))#统计10的个数
#如果元组中只有一个元素:
t=(10)
print(t,type(t))
#这里的类型为整形
#因此如果只有一个元素,逗号不能省,如果省略则类型会改变
y=(10,)
print(y,type(y))
元组的删除与列表的删除是一样的都是使用:del
#元组的访问与遍历
t=('h','t','y')
print(t[0])
t2=t[0:3:2]#元组支持切片操作:从0到3(不包括3)步长为2
print(t2)
#元组的遍历,无序号
for item in t:
print(item)
#有序号排列
for i in range(len(t)):
print(i,t[i])
##使用enumerate()函数,有序号
for index,item in enumerate(t):
print(index,'-->',item)
for index,item in enumerate(t,start=11):
print(index,'-->',item)
元组的生成式
方法一:
#元组的生成式
t=(i for i in range(1,4))
print(t)#此时出现生成器对象
t=tuple(t)
print(t)
方法二:
t=(i for i in range(1,4))
#遍历(遍历一边之后对象里不存在元素了
for item in t:
print(item)
方法三:
t=(i for i in range(1,4))
#使用__next__
print(t.__next__())
print(t.__next__())
print(t.__next__())
#此时将所有元素都取出再转为元组类型就为空的了
t=tuple(t)
print(t)
元组为Python中的不可变序列,列表为可变序列,元组的访问速度比列表快