字典-切片

字典:key:value形式,根据key取值,速度快,无顺序,每次打印可能都不一样,不能像列表按下标取值

定义{}

stuts={
    'name':'xiaohei',
    'age':18,
    'addr':'北京'
}
stu={
    'id':1890808,
    'class':'自动化一班'
}

#增加
stuts['sex']="男"#若没有添加key及value,若有修改value
print(stuts)
stuts.setdefault('age','18')#若没有添加key和value,若有,不处理
#修改
stuts['addr']='天津武清'
#删除
stuts.pop('age')
del stuts['name']
print('---------------------')
print(stuts)
#取值
print(stuts['addr'])#取不存在的报错
print(stuts.get('addrr','beijing'))#取不存在的返回None,可以赋默认值
#取所有key,所有value
print(stuts.keys())
print(stuts.values())
#将一个字典的信息添加到另一个
stuts.update(stu)
print('************************')
print(stuts)
print(stu)
print('id'in stuts)#判断key是否存在
print(stuts)
print('天津武清'in stuts.get('addr'))#VALUE是否存在
#定义一个字典,存账号密码
login={
    'xioahei':'123456'
}
for i in range(3):
    name=input("请输入用户名")
    passwd=input("请输入密码")
    if name in login:
        print("用户已存在")
    else:
        login.setdefault(name,passwd)
print(login)
print('+++++++++++++++++')
#获取所有的key,value,速度快
for i in login:
    print(i,login[i])
print('---------------------')
#获取所有的key,value,速度慢
for k,v in login.items():
    print(k,v)

列表生成式:

l=[i for i in range(10) if i%3==0]
print(l)

切片:对list一个范围的取值

l=(1,2,3,4,5,6)
#l[0]=9
#print(l)#TypeError: 'tuple' object does not support item assignment
s='1214243455'
sa=('abc',)#元组只有一个元素时,加个逗号
#s[2]='r'#TypeError: 'str' object does not support item assignment  不可变数据类型:int、float、字符串和元组都不能修改
m=[1,2,3,4,5,6,7,8]
print(m[0:3])#[1, 2, 3] 取下标0,1,2,顾头不顾尾
m[:]#冒号前不写代表从头取值,冒号后边不写代表取到尾,冒号前后都不写代表取全部
print(m[0:6:2])#[1, 3, 5]0:6表示从下标0开始取,取到下标6之前的,:2 是步长
print(m[::-2])#负数表示从后往前取,步长是2
print(m[-1:-5:-1])#[8, 7, 6, 5]若不是取全部元素,步长为负数时,前边的下标也得是负数

 

你可能感兴趣的:(python)