Loading

Python基础_2

列表list[]

增删改查

# 序列,相当于数组
str1=["青青园中葵","朝露待日晞","阳春布德泽","万物生光辉"]

str2=str1+str1# 支持相同数据类型加法
print(str1[2],'\n',str1[0:3:1],'\n',str2,'\n',str1*3)# 索引0开始,切片[起始:截止,不包括它:步长],乘法
print(str1[-1])# 倒着来,-1开始
arr=[None]*5 #None代表空的,相当于Null
print(arr)
print("朝露待日晞" in str1)#检查元素是否在序列
print("朝露待日晞" not in str1)#检查元素是否在序列
sl=[10,20,5,55,5,15]
print(len(sl),max(sl),min(sl),sum(sl))
sorted(sl)#排序为什么没用
print(sl)

>>> 
=========================== RESTART: D:\桌面\idle314.py ==========================
阳春布德泽 
 ['青青园中葵', '朝露待日晞', '阳春布德泽'] 
 ['青青园中葵', '朝露待日晞', '阳春布德泽', '万物生光辉', '青青园中葵', '朝露待日晞', '阳春布德泽', '万物生光辉'] 
 ['青青园中葵', '朝露待日晞', '阳春布德泽', '万物生光辉', '青青园中葵', '朝露待日晞', '阳春布德泽', '万物生光辉', '青青园中葵', '朝露待日晞', '阳春布德泽', '万物生光辉']
万物生光辉
[None, None, None, None, None]
True
False
6 99 5 193
[8, 9, 66, 99, 5, 6]
# 列表初始化
print(list(range(0,10,2)))
l=list(range(10,20,2))
l2=list(range(10,10,2))# 空表
print(l)#[10, 12, 14, 16, 18]
print(l2)#[]
# del l2
# del[2]删除指定索引位置的
# 删除不常用,Pyhon自带回收机制

# 列表增
l.append(888888)#同 +
l.insert(1,6666)
print(l)
l.extend(l)#添加表l
print(l)
print(l.count(10))#计算10的个数
l3=[22,33,44,11,0,3]
l3.sort(key=None,reverse=False)#默认升序,False区分大小写,key=str.lower时表示不区分字母大小写
print(l3)
# 列表查
print(l.index(12))# 12第一次出现的下标
>>>
=========================== RESTART: D:\桌面\idle314.py ==========================
[0, 2, 4, 6, 8]
[10, 12, 14, 16, 18]
[]
[10, 6666, 12, 14, 16, 18, 888888]
[10, 6666, 12, 14, 16, 18, 888888, 10, 6666, 12, 14, 16, 18, 888888]
2
[0, 3, 11, 22, 33, 44]
2
>>> 

列表,元组推导式

  • 元组的推导式和列表差不多,只是把[]改成小括号()
  • 元组推导式,产生的不是元组而是生成器对象,这一点是和list是不同的
  • 生成器对象,可以转换为list或者tuple
import random
list1=[random.randint(1,1000) for i in range(9)]
print(list1)
>>> 
=========================== RESTART: D:\桌面\idle314.py ==========================
[269, 18, 458, 373, 449, 482, 745, 487, 551] <class 'list'>
>>> 

生成器对象

生成器对象转成tuple

import random
numbers=(random.randint(1,1000) for i in range(9))
print(numbers,type(numbers))
print(tuple(numbers))
>>> 
=========================== RESTART: D:\桌面\idle314.py ==========================
<generator object <genexpr> at 0x000001E950629AC0> <class 'generator'>
(718, 823, 869, 866, 29, 242, 326, 78, 967)
>>> 

生成器对象的输出
__next__()法

import random
numbers=(random.randint(1,1000) for i in range(3))
print(numbers.__next__())#第一次输出
print(numbers.__next__())
print(numbers.__next__())
print("转换后",tuple(numbers))

>>> 
=========================== RESTART: D:\桌面\idle314.py ==========================
127
695
708
转换后 ()
>>> 

for i in numbers

import random
numbers=(random.randint(1,1000) for i in range(3))
for i in numbers:
    print(i,end=' ')
print("转换后",tuple(numbers))


>>> 
=========================== RESTART: D:\桌面\idle314.py ==========================
173 145 164 转换后 ()
>>> 

元组tuple(),不可变序列

操作差不多,就是不可变化.如果像list那样修改单个元素会报错.但是可以对元组重新赋值

t1=tuple(range(20,30,3))
print(type(t1),t1)
t1=(6,6,6)
print(t1)
>>> 
=========================== RESTART: D:\桌面\idle314.py ==========================
<class 'tuple'> (20, 23, 26, 29)
(6, 6, 6)
>>> 
posted @ 2022-03-15 22:24  _JunJun  阅读(112)  评论(0)    收藏  举报