-
序列
-
列表
-
简单案例
常见的序列类型包括字符串、元组、列表,序列即有序的成员,一个元素有一个序号,可通过索引访问。索引可以为正负。 常用类型的区别:
- 列表
列表是比较常用的一种数据类型,可以包含不同的数据类型构成比较复杂的结构,内置函数list,可伸缩性。
- 列表操作
生成列表:a=list(range(5)) l1=['apple',1,'banana','sweet'] print(a,l1) 创建空列表: ampty=[] - 查看修改某个值 以下以这两个列表为操作对象 nba=["马刺","湖人","雷霆","森林狼","快船","火箭爵士","鹈鹕","黄蜂"] cba=['天津','上海','北京','深圳'] print(nba) print(len(nba)) #查看列表长度 print(nba[3])#查看第4项 nba[3]='unknow'#修改第4项为unknown print(nba[3]) - 删除操作 #---通过索引删除元素---------- print(nba) nba[0:3]=[] #将前四项删除 print(nba) del nba[3:]#保留前三项 print(nba) print(nba.pop())#list.pop(index),缺省索引表示返回最后一个值,并从列表中删除 print(nba) del cba[:] #清空列表 print(cba) del cba #删除整个列表 #---通过元素值删除---- print(nba) nba.append("湖人") print(nba) print(nba.remove("湖人"))#如果元素不存在会报错,若存在多个值,只会删除第一个 print(nba) - 添加元素列表 print(nba) nba.insert(1,'1st') #将1st添加到第二个列表前面,指定位置添加元素或列表作为一个元素 #cba.append(nba) #在列表末尾追加元素 print(cba) print(max(cba),min(cba)) print(nba) for i in range(len(nba)*2): #在各球队后添加一个数字 if i % 2 == 1: nba.insert(i,i) print(nba,end=' ') #-----添加列表------- print(nba+cba) #列表相加产生一个新列表,不会修改原列表 print(nba,cba) nba.extend(nba) #添加指定列表的所有元素扩展列表 print(nba) - 判断元素是否存在 1.通过组成员关系判断;2.通过统计判断 - 查看某个元素首次出现的位置 print(nba.index('湖人')) - 数学运算 计算大小、求和等 但是求和不支持字符串类型操作: - 统计 #---对列表出现的元素进行统计------ for i in nba: print(i,"\t\t","%d"%nba.count(i)) - 排序:两种方法一个使用变量的属性llist_name.sort(),另外使用sorted函数
不区分大小写进行排序:list1.sort(key=str.lower)
lower表示小写,upper表示大写:
- 列表推导式
主要三种形式: list_name=[expression for var in range] list_name=[expression for var in list_name] list_name=[expression for var in list_name if condition]
例如:随机生成10个随机数从1~100:
![](https://s1.51cto.com/images/blog/201904/08/bed9d82a755ac2cfbc969e1f4c0a8e8d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
- 列表嵌套
创建一个二维4X5的数组
![](https://s1.51cto.com/images/blog/201904/08/c7559badb38765bf4f3968be90be466e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
方法二通过列表推导式生成: - 列表遍历 1.直接使用for循环进行遍历
for item in list_name: print(item) #直接输出列表各值;
2.通过enumerate()函数进行遍历
![](https://s1.51cto.com/images/blog/201904/08/e798d25e7b6a6e48d42c10e9583bfff7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
3.对过个列表进行遍历
对多个列表同时遍历时需要使用zip()函数将相同属性组合
![](https://s1.51cto.com/images/blog/201904/08/5bbdba2ba49c92af8db2f60070158aba.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
4.判断列表是否为空
#列表为空则False
a=['w']
# if len(a):
if a:
print(a)
else:
print('空')
- 简单案例
- 每日一句励志
import datetime
mote=["sentence1","sentence2","sentence3","sentence4","sentence5","sentence6","sentence7"]
# for index,item in enumerate(mote): #index用于保存元素索引,item获取元素值
# print(index+1,item)
day=datetime.datetime.now().weekday() #month/day显示几月份和第几天
print(mote[day])
checkcode导入random模块
定义一个保存验证码的变量,for循环实现重复4次的循环在这个循环,
调用random模块提供的random.range(),randian()生成符合要求的验证码
a~z 97-122,A~Z :65~90,1~9
难点,如何生成这三个条件
"""
if __name__=='__main__':
checkcode=''
for i in range(6):
index=random.randrange(0,6)
# index=random.randint(0,6) #randrange 与randiant区别,前者可以设置step
if index != i and index+1!=i:
checkcode+=chr(random.randint(97,120)) #生成a-z小写,chr()转换
elif index+1==i:
checkcode+=chr(random.randint(65,90)) #生成一个大写字母
else:
checkcode+=str(random.randint(1,10)) #生成一个1-9数字
print("验证码:"+checkcode)
mport random
def randomcode():
code=''
for i in range(5):
index=random.randint(0,5)
if index != i and index+1 != i:
code+=chr(random.randint(97,120))
elif index+1==i:
code+=chr(random.randrange(65,90))
else:
code+=str(random.randint(1,10))
return code
if __name__=="__main__":
code=randomcode()
print(code)