列表-切片
切片的目的就是获取列表中的一部分,得到一个新的列表,不改变原来。
'''
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 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传递
元组
字典