切片与字典(Python day 11)

本文介绍了Python中切片的概念,包括自动切片与手动切片,详细讲解了如何切掉字符串中的特定字符以及字符串的替换。此外,还深入探讨了字典的增删改查操作,包括创建、删除、更新和查找键值。最后,通过三个小题,实践了切片和字典应用,包括直角杨辉三角、传送带打印和打印字符串的每个元素及其下标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

切片 (自动切片与手动切片)

字典切片

	a='asdafafsa'
#自动切片
	b=a[2:6:2]#a[起始位置:结束位置:步长]    切片的规则是有头无尾
#用while切片
	star=int(input('起始位置:'))
	stop=int(input('结束位置:'))
	step=int(input('步长:'))
	while star<stop:
	    print(a[star],end='')
	    star+=step#要控制开始位置与步长,保证能切出来
#用for切片
	star=int(input('起始位置:'))
	stop=int(input('结束位置:'))
	step=int(input('步长:'))
	for i in range(star,stop,step):#range的内嵌函数就已经包含起始位置,结束位置,步长了,所以这个循环只是输入参数而已
	    print(a[i],end='')

range的内嵌函数就已经包含起始位置,结束位置,步长了,所以这个循环只是输入参数而已

切掉字符串中的-

for循环做

a='asd-bdb-uhn'
s=a.split('-')
print(s)

split的作用是将字符串按照要切片的位置进行分段,并且生成一个列表
手动切片

a='asd-bdb-uhn'
i=0
while i<len(a)-1:
    if a[i]=='-':
        print()
    else:
        print(a[i],end='')#不可以输出-
    i+=1

字符串的替换

	a='abcdefghigk'
	b=a.replace('abc','123')#
	print(b,type(b))#123defghigk <class 'str'>,虽然结果是这样的,但是b想到于重新组成了一个字符串,与a没有关系了

字符串是不能替换的,但是却可以生成一个新的字符串,那么replace的内置函数就可能有一个转化为列表函数

字典中的增删改查

dict(key=value)------创建一个字典

# a.update()  update还不会
b=dict(shengao=1.8)#创建一个字典 结果是{'shengao':'1.8'}
print(b)

删除有
del a[key]–删除key对应的value
.clear()-----清空字典
.pop()------删除字典中的某一个键对应的value值
.popitem()-删除某一键值对

a={'name':'小五','age':18,'sex':'男'}
del a['name']         #这样就删除了这个key所对应的value
print(a)                #并且字典是可修改的,不用另外保存


b=a.clear()
print(b,'没了')      #后面的不是返回值,也就是说  ‘没了’    只是一个输出项,而不是一个返回值


b=a.pop('name')
print(b)                #这样是删除了键对应的value
print(a)                #体现了字典的可修改性


b=a.popitem()     #默认删除最后一个键值对
print(b)
print(a)

a[key]=value -------这就是一种更新方式

a={'name':'小五','age':18,'sex':'男'}
print(a['name'])
a['sex']='nv'#这是一种更新方式
print(a)

.get(key)-------得到key对应的value

a={'name':'小五','age':18,'sex':'男'}
print(a.get('sex'))#查找一个key所对应的value

小题

一、 直角杨辉

输出效果:
1
23
345
。。。
用while实现,必须是单层循环

a=str(input('请输入一串字符串:'))
hang=1
lie=0
i=0
while i<len(a)-1:
    print(a[i], end='')#首先输出第一个
    lie+=1#输出一个lie就得加一
    if hang==lie:#当行列相同时,相当于一个对角线行列式
        lie=0
        hang += 1#这里是控制行列始终是三角形的
        print()
    i+=1

用for实现,必须是单层循环

for i in range(len(a)):     #这里控制变量只用到了a的长度
    print(a[i],end=' ')
    lie+=1
    if hang==lie:
        lie =0
        hang+=1
        print()      #全程没有改变字符串a,只不过是访问了一下

二、传送带的打印

思想是让元素循环起来
while 循环

import time
a=[1,2,3,4,5]
while True:
    i=0
    while i<len(a)-1:			#控制着交换列表的元素依次前进着
        a[i]=a[i+1]
        i+=1
    a[len(a)-1]=a[0]			#列表最前面的放在最后面
    time.sleep(1)
    print(a)

for循环

import time
a=[1,2,3,4,5]
while True:
    print(a)
    for i in range(len(a)-1):
        a[i]=a[i+1]
        
    a[len(a) - 1] = a[0]

    time.sleep(1)
    #for循环暂时实现不了传送带

三、打印字符串的每个元素及其下标

a=input('请输入字符串:')
i=0
while i<len(a)-1:
    print('这是第%d个元素%c,下标是%d'%(i+1,a[i],i))
    i+=1

%c就是标志着元素


今天的东西有点多,个人拙见,请见谅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值