补充内容
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
Ellipsis
help(print)
print(...)
a,b,c,*d=1,2,3,4,5,6
print(a,b,c,d)
name='david'
age=12
print('her name is %s,her age is %d'%(name,age))
print('her name is'+name+",her age is "+str(age))
格式化字符串
%号格式化
占位符
格式 | 描述 |
---|---|
%d | y有符号的整数 |
%s | 字符串 |
%c | 字符及ASCII码 |
%o | 无符号八进制整数 |
%x/%X | 无符号十六进制整数 |
%e/%E | 浮点数,科学计数法 |
%f | 浮点数 |
format格式化
(1)位置映射
print("Name:{},age:{}".format('tom',18))
(2) 关键字映射
print('{address},name:{},age:{}'.format('tom',19,address='sdsd'))
(3) 索引获取
print("第一个元素是:{0[0]},第二个元素是{0[1]}".format(('www.','baidu')))
列表
查
li=[]
print(type(li))
li=[1,2,3,'abv','vpn',['I','love','sda']]
sr='asd'
li1=list(sr)
li1=['I']
li2=['Love','PYTHON']
print(li1+li2)
li2=['C','i','t','y','City','sd',[1,2,'sd'],'sd','aa','sdsd']
print(len(li2))
print(li2[0],li2[-7])
print(li2[:5])
print(li2[::-1])
print(li2[7][1])
增
print(id(li2))
li2.append(li1)
print(li2)
li2.extend(li1)
print(li2)
改
li[5]='xxx'
li[2:6]=['x','y','z']
print(li)
删
pop()
- 不指定索引,默认删最后一个元素
- 删除指定索引对应元素
remove()
li.remove("e")
- 移除第一次遇到的指定元素
del li[5]
del li[]
- 删除指定下表元素
- 删除整个列表
clear()
- 清空列表元素
遍历
-
元素遍历
for i in li: print(i)
-
索引遍历
for i in range(len(li)): print(i)
-
枚举遍历
enumerate() ,对于一个可迭代的对象 for i in enumerate(li,2): print(i)
排序
li.reverse()
li.sort()
li.sort(reverse=True)
练习
1.input()函数实现往空列表中添加元素,当输入"q"的时候,结束输入,并返回列表。
2.随机生成30个0-10的随机整数,并统计每个数出现的次数,
返回的结果形式为[[0, 3], [1, 4], … , [10, 5]]
list1=[]
while True:
ss=input("请输入元素:")
if ss!='q':
list1.append(ss)
else:
break
print(list1)
j=1
list2=[]
while j<=30:
rand=random.randint(0,10)
list2.append(rand)
j+=1
list4=[]
for i in range(10):
value1=list2.count(i)
li3=[]
li3.append(i)
li3.append(value1)
list4.append(li3)
print(list4)
深浅拷贝
-
浅拷贝
只拷贝列表的第一层,如果列表里还有列表,修改其中一个二级列表后,浅拷贝的二级列表也会随之变化,因为嵌套列表的元素指向的还是同一个位置。
-
深拷贝
深拷贝拷贝对象所有的元素,包括多层嵌套的元素,因此是完全开辟了一个新的内存存储区。
列表解析式(列表生成式)
-
用来生成列表的特定的语法形式
-
格式
[表达式 for 迭代元素 in 可迭代对象]
-
实现原理
迭代[可迭代对象]中的每一个元素
每迭代一次的结果赋值给对应的的迭代元素。再通过表达式运算得到一个新的值
最后所有通过表达式计算的值以一个列表的形式返回
print([x for x in range(10) if x %2==0])
三目元素符
y=10
x=y+1 if y>10 else y-1
print(x)
name=[1,2,3]
subjuct=[2,3,4,5]
ls= [3*[i,j] for i in name for j in subjuct ]
print(ls)
元组
-
有序
-
可以重复
-
不可更改
元组的创建
空元组的创建
tp=()
单元素元组的创建
tp=(1,)
单元素元组的创建,需要在单元素后面追加逗号
多元素元组的创建
-
拼接
-
重复
-
索引(偏移) 切片
tp=(1,2,3,4,5,6) tp2=(7,8,9,10,11) print(tp+tp2) print(tp[1]) print(tp[2:4])
- 元组不可修改元素指的是最外一层元素,内层元素可以改变
查
-
索引查
-
切片查
-
index()
-
max(tp),min(tp)
-
枚举enumrate
for i ,k in enumrate(tp):
print i ,element
改
- 不行
- 只能修改内层元素
增
- 不行
删
-
不能删除1某个元素
-
可以通过del删除整个元组
print(tp+tp2)
print(tp[1])
print(tp[2:4])- 元组不可修改元素指的是最外一层元素,内层元素可以改变
查
-
索引查
-
切片查
-
index()
-
max(tp),min(tp)
-
枚举enumrate
for i ,k in enumrate(tp):
print i ,element
改
- 不行
- 只能修改内层元素
增
- 不行
删
-
不能删除1某个元素
-
可以通过del删除整个元组