语法格式:
print(value,...,sep='',end='\n',file=sys,flush=false)等价于
%格式化字符串 用%匹配参数,注意个数一一对应。
“%d%%” 0 >>>>0
name = "tom" age = 18 print("His name is %s, his age is %d."% (name, age)) print("His name is", name,",his age is", age,".")注:关键字一定要放在后面
列表使用方括号括起来的[],每个元素以逗号分割;
可以储存不同的数据类型数据
数组
特点:
是一个有序的可以重复的可变类型创建
创建空列表
li = [] print(type(li))创建多元素列表
li = [1,2,3,'abcd','city','college',['i','love']]强转
sr = 'abcd' li = list(sr) >>> li = ['a','b','c','d']拼接
li1 = ["i"] li2 = ["love"] print(li1 + li2)索引 (偏移) [], 切片[:],[::]
li = ["c","i","t","y","city","college","zhejiang"] print(len(li)) print((li[0],li[-7])) print(li[:5]) print(li[::-2]) print(li[4][1]) >>> 7 ('c', 'c') ['c', 'i', 't', 'y', 'city'] ['zhejiang', 'city', 't', 'c'] i增删改查
1 list.append(obj) 在列表末尾添加新的对象,将整体插入进去 2 list.count(obj) 统计某个元素在列表中出现的次数 3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 5 list.insert(index, obj) 将对象(整体)插入列表 6 list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 7 list.remove(obj) 移除列表中某个值的第一个匹配项 8 list.reverse() 反向列表中元素 9 list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序
str_new = 'hkt lzy love' list1 = str_new.split(' ') print(list1) list2 = ['hkt','lzy','love'] list3 = [22, 20, 21, 26, 18] print(id(list1), id(list2)) print(list1 == list2) # == 判断两个变量的值大小是否一致 print(list1 is list2) # is 判断两个变量的内存地址 print(list2[0:2]) # 列表的截取 print(len(list2)) # len 获取列表长度 print(max(list3)) # max 获取列表的最小值 print(min(list3)) # min 获取列表的最小值 list3.pop(2) # pop 删除下标为2的元素 print(strip(list3)) # strip 去首尾空格 list3.append(100) # append 向列表里面追加一个元素 list3.extend(list2) # extend 向列表里追加另一个列表的所有元素 list3.insert(1, 999) # insert 指定下标添加一个元素 若加入字母要加引号 list3.remove(26) # remove 删除在指定值的元素 list3[1] = 10 #指定下标修改其对应的值 list3.clear() # 清空列表里面的元素 del list3 # 删除列表 释放其空间 del list1[] #删除指定下标元素遍历
(1)元素遍历
li = ["a","b","c"] for i in li: print(i) >>> a,b,c(2)索引遍历
li = ["a","b","c"] for i in range(len(li)): print(li[i])(3)枚举遍历
enumerate(),对于一个可迭代的/可遍历的对象(如列表,字符串等)
enumerate() 将其组成一个索引序列,利用它,我们可以同时获得索引和值
li = ["a","b","c"] for i in enumerate(li,2): print(i) >>> (2, 'a') (3, 'b') (4, 'c')堆和栈,用列表实现
其它操作
list.reverse # 将列表的元素顺序翻转 print(list.count(20)) # count 统计某一元素在列表中出现的次数 list.sort(reverse=false) # 将列表按其元素的值进行排序 false是升序 ture是降序例:
input()函数实现往空列表中添加元素,当输入”q“时,结束输入,并返回列表
li = [] while True: inp = input("请输入元素:\t") if inp == "q": break else: li.append(inp) print(li)随机生成30个0-10的随机整数,并统计每个数出现的次数,返回的结果形式为[[0,3],[1,4],…[10,5]]
import random list_1 = [] list_2 = [] for i in range(30): list_1.append(random.randint(0,10)) print(list_1) for i in range(11): list_2.append([i,list_1.count(i)]) print(list_2)赋值是对对象的引用
浅拷贝会创建新对象,内容是原对象的引用
三种实现方法:
切片操作 [:]
工厂函数list(li)
copy模块内的copy函数。
ia = [1,2,3] ib = ia ib2 =ia[:] print(id(ia),id(ib2)) >>> 1738099483272 1738099483336 import copy ib_copy = copy.copy(ia) print(id(ia),id(ib_copy)) >>> 1652412670600 1652442860808 ia.append('test') #添加原子类型,不会影响ib_copy print(ia) print(ib_copy) >>> [1, 2, 3, 'test'] [1, 2, 3]深拷贝
import copy ia = [1,2,3,'a',['b1','b2']] ib_deepcopy = copy.deepcopy(ia) print(ia,id(ia)) print(ib_deepcopy,id(ib_deepcopy)) ia[4][1] = "aaa" print(ia) print(ib_deepcopy) >>>[1, 2, 3, 'a', ['b1', 'aaa']] [1, 2, 3, 'a', ['b1', 'b2']]对象的引用
浅拷贝相当于我们只拷贝了一层,修改外层元素,会修改引用,让它们指向另一个位置;修改嵌套列表的元素,列表地址没有发生变化,指向的还是同一个位置。
深拷贝拷贝对象的所有元素,包括多层嵌套的元素。因此,是开辟了一个新的内存储存区,和数据源没有关系了。
列表生成式,用来生成列表特定的语法形式
sr = '城市学院' print([ord(x) for x in sr]) >>> [22478, 24066, 23398, 38498]格式:
[exp for iter_val in iter]实现原理:
迭代[可迭代对象]中的每一个元素每迭代一次的结果赋值给对应的迭代元素,在通过表达式运算得到一个新的值最后所有通过表达式计算的值以一个列表的形式返回。三目运算符
y = 10 x = y+1 if y>10 else y-1 print(x)带过滤功能格式
[exp for iter_val in iter if if_condtion] 例:将下列两表一一对应起来 name = ["tom","jack","lucy"] subject = ["python","java","c","c++"] li = [] print([[i,j] for i in name for j in subject ]) 》》》[['tom', 'python'], ['tom', 'java'], ['tom', 'c'], ['tom', 'c++'], ['jack', 'python'], ['jack', 'java'], ['jack', 'c'], ['jack', 'c++'], ['lucy', 'python'], ['lucy', 'java'], ['lucy', 'c'], ['lucy', 'c++']]元组的创建
空元组的创建,不能添加元素
单元素元组的创建,要在单元素后面添加逗号
tp = () tp = ("abc",)多元素元组的创建,包含多种数据类型
(1)拼接
(2)重复
(3)索引(偏移) 切片
查
索引查
切片查
index()
tp = (1,2,3,"a","b",["aa","bb"]) print(tp.index("a")) >>> 3 print(tp[5].index("aa")) >>> 0增,不能
删,删除某个元素,不能;但可以全部删掉
tup = ('physics', 'chemistry', 1997, 2000) print tup del tup print "After deleting tup : " print tup元组内置函数
cmp(tuple1, tuple2) 比较两个元组元素。 len(tuple) 计算元组元素个数。 max(tuple) 返回元组中元素最大值。 min(tuple) 返回元组中元素最小值。 tuple(seq) 将列表转换为元组。
遍历
元素遍历
索引遍历
枚举遍历enumrate
for i in tp: print(i) for i in range(len(tp)): print(tp[i]) for i in enumerate(tp,0): print(i) >>> (0, 1) (1, 2) (2, 3) (3, 'a') (4, 'b')