day3:字符串列表元组的相关学习

it2022-05-05  115

补充内容

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))

格式化字符串

%号格式化

占位符

格式描述%dy有符号的整数%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删除整个元组


最新回复(0)