列表-切片
切片的目的就是获取列表中的一部分,得到一个新的列表,不改变原来。
'''
ls=[i**2 for i in range(0,9)]
print(ls)
'''
#切片[a:b:c] a默认是0,b默认是len
#下标从a开始,截止到b,b是取不到的 [a,b)
#c是间隔,默认是1
'''
ls=[i for i in range(1,9)]
print(ls)
print(ls[1:5])
print(ls[1:7:2]) #从下标1开始到长度7,间隔为2
print(ls[0:len(ls):2]) #从下标0开始到表长,间隔2
print(ls[::2]) #同上
ls.reverse() #倒序
print(ls)
print(ls[::-1]) #间隔为-1,相当于倒序
print(ls[7:1:-1]) #从下标7开始到1
print(ls)
'''
ls1=mylist[1:3]
ls2=mylist[3:11]
print(ls1+ls2)
遍历
遍历我的列表,while和for的两种循环方式
ls=[i for i in range(1,9)]
myindex=0
mylen=len(ls)
while myindex<mylen:
print('%s:%s'%(myindex,ls[myindex]))
myindex+=1
==========================================
for m in ls:
print('%s:%s'%(ls.index(m),m))
传递
一个变量传给另一个变量
a=10
b=a
a=20
print(‘a=%s,b=%s’%(a,b))
================================================
ls1 = [1,2,3]
ls2 = ls1
print('ls1=%s,ls2=%s'%(ls1,ls2))
ls1.append(120)
print('ls1=%s,ls2=%s'%(ls1,ls2))
**********************************************************************
a=10
b=10 (地址相同)
ls1=[1,2,3]
ls2=[1,2,3] (地址不同)
python 组织数据的方式不一样,普通类型(数字,字符串,布尔,空)与集合列表不同
传递变量,二者都是指向同一个地址内存,如果是普通类型,不会影响另一方,如果是非普通类型(集合,对象),会影响另一方。
普通类型的传递再修改----->值传递
非普通类型的传递再修改-------->引用传递
元组
与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用中括号。元组的功能 = 列表不修改的功能。
tu =(1,2,3)
print(tu[0]) #下标为0的元素
print(tu.index(2)) #查询2的下标
print(tu.count(1)) #出现数量
tu1=(1,2,3) #列表转元组
ls1=[4,5,6]
tu2=tuple(ls1)
print(tu2)
***********我是智障的分割线************
tu1=(1,2,3) #元组转列表
ls1=[4,5,6]
ls2=list(tu1)
print(ls2)
注意:转变之后都是得到一个新的,不会修改原来的。
****************割**********************
num=(1,2,3,[22,33,44])
num[3][2]=4444 #可以将元组里的列表内的元素改变
print(num)
print(num[3][2])
元组是一个特殊的列表,只读,不能修改。一旦定义并赋值之后,不能再修改,只有查询的功能。如果元组只有一个值,后面需要加上逗号,建议:元组,列表最后都加上一个逗号。
t1=(1,2,3)
t2=(1,2,3) # id 不一样
字典
字典使用键-值(key-value)存储,具有极快的查找速度。使用{ } 字典的键是无序的,不能保证顺序。
标识符={’键1‘:值1,’键2:值2。。。。。。}
注意: 1-键必须是字符串,值是任何类型的 2-键必须是唯一的,值可以重复,3-如果键重复,后面会覆盖前面的,就是如果存在这样的键,是修改,不存在就是新增
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
#新增
infos['sex']='女'
print(infos)
'**************你的分割线***************'
#修改
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
infos['age']=17
print(infos)
'**************你的分割线***************'
#删除键获取值
sname=infos.pop('sid')
print(sname)
print(infos)
'**************我的分割线***************'
#删除
del infos['age']
print(infos)
#长度
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
print(len(infos))
infos.clear()
print(infos)
'**************她的分割线***************'
#获取,如果没有,获取默认值
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
print(infos['age'])
print(infos.get('sex'))
print(infos.get('sex','无'))
print(infos.get('age','有'))
'**************咱的分割线***************'
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
#获取所有的键
infos_keys=infos.keys()
print(infos_keys)
for k in infos_keys:
print(k)
#获取所有的值
infos_values=infos.values()
print(infos_values)
for value in infos_values:
print(value)
'*************割*******************’
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
infos_keys=infos.keys()
for k in infos_keys: #遍历键,获得值(第一种遍历方式)
print('%s:%s'%(k,infos[k]))
print(len(infos))
infos_items=infos.items()
print(infos_items)
for k in infos_items:
print('k=%s'%str(k)) #第二种遍历方式
key=k[0]
value=k[1]
print('%s:%s'%(key,value))
‘****************割******************’
for k in infos: #第三种遍历方式
print(k)
print('%s:%s'%(k,infos[k]))
'**************是不是分割线***************'
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
key=input('输入键:') #判断键的存在
if key in infos:
print('有')
else:
print('无')
‘*********************割******************’
#获取所有的值
infos={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐冲','烫头发']
}
infos_values = infos.values()
value = input('输入要搜索的值:')
#False表示没有,True表示有
flag = False
#遍历值
‘’‘
for k in infos_values:
if k==value:
flag = False
break
’‘’
flag = value in infos_values
if flag:
print('有')
else:
print('无)
2017-10-31