day two Python学习之列表、元组、字典、流程控制、文件处理和函数

一  列表

列表的定义:在[ ]内可以有多个任意类型的值,逗号分隔。列表与数组类似,也有一维、二维和三维的。

students = ['kermit','alex','wupeiqi',]
students(['kermit','alex','wupeiqi',])
students = list(['kermit','alex','wupeiqi',])
#列表的三种定义形式
students1 = ['james','man',18,['sing','basketball','tiao','rap']]#二维列表
#students1[0][0]='james';students1[1][0]='man';students1[2][0]=18;
#students1[3]=['sing','basketball','tiao','rap']
print(students1[3][2])#可以得到tiao
students_info=[['kermit',18,['play',]],['alex',18,['play','sleep']]]#三维列表
#['kermit',18,['play',]属于三维数组第一格,'kermit',18,['play',]属于第二格,'play'属于第三格
print(students_info[1][2][1])#sleep
列表的各项操作:
  1、按索引存取值(正向存取+反向存取):即可存也可以取     
  2、切片(顾头不顾尾,步长)
  3、长度
  4、成员运算in和not in
  5、追加
  6、删除
  7、循环
  8、使用index查找列表中某个值的索引
  9、pop取值,默认取列表中的最后一个值,类似删除,如果pop()括号中写了索引,则取索引对应的值
  10、删除remove
  11、插入值insert
  12、extend 合并列表
students1 = ['james','man',18,['sing','basketball','tiao','rap']]
students = ['kermit','alex','wupeiqi',]
#按索引取值(正向和反向)
print(students[1])#alex
print(students[-1])#wupeiqi
#切片,顾头不顾尾,步长
print(students1[0:4:2])#['james', 18]
#长度len 成员运算in和not in
print(len(students1))4
print('18' in students1)#True
print('18' not in students1)#False
#追加
students1.append('haohen,666')#['james', 'man', 18,
#['sing', 'basketball', 'tiao', 'rap'], 'haohen,666']
print(students1)
#删除
del students1[3]#删除列表中索引为3的值
print(students1)#删除了['sing', 'basketball', 'tiao', 'rap']
#index 查找列表中某个值的索引
print(students1.index(18))#18的索引是2
#获取列表中某个值的数量 count
print(students1.count(18))#只有1个18,数量为1
#取值,默认取列表中的最后一个值,类似删除,如果pop()括号中写了索引,则取索引对应的值
print(students1.pop())#取完以后值已离开原列表 'haohen,666'
print(students1.pop(1))#man
#删除remove
students1.remove(18)#需要在括号内写入想要移除的量的值
print(students1)
#插入值
name = ['胖虎','蔡恩','sf no1']
name.insert(2,'best')#把best插入到索引2处
print(name)
#extend 合并列表
name2 = ['巴雷特','新秀分位','nice']
name.extend(name2)#将name2放在name之后
print(name)
#循环
for line in name:
    print(line)#循环输出元素

 二  元组

作用:存多个任意类型的值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读。
定义:与列表类型比,只不过[ ]换成( )。
例如:age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
元组的操作:
      1、按索引取值(正向取+反向取):只能取  
      2、切片(顾头不顾尾,步长)
      3、长度
      4、成员运算in和not in
      5、循环
age = (17,16,15,'十八')
#1、按索引取值(正向取+反向取):只能取
print(age[2])#15
#2、切片(顾头不顾尾,步长)
print(age[0:4:2])#(17, 15)
#3、长度len
#4、成员运算in和not in
#5、循环
for line in age:#print会默认end为\n,进行换行,可以通过改变end的值来对此特性进行修改
    print(line,end=' ')

三  字典

注:不可变类型:变量的值修改后,内存地址一定不一样。整型,浮点型,元组,字符串
可变类型:值修改后,内存地址不变。列表,字典
#作用:存多个值,key-value存取,取值速度快

#定义:key必须是不可变类型,value可以是任意类型
info={'name':'kermit','age':18,'sex':'male'} #本质info=dict({....})
或
info=dict(name='kermit',age=18,sex='male')
或
info=dict([['name','kermit'],('age',18)])
或
{}.fromkeys(('name','age','sex'),None)
字典的操作:
  1、按key存取值:可存可取
  2、长度len
  3、成员运算in和not in
  4、删除
  5、键keys(),值values(),键值对items()
  6、循环
  7、get使用
dict({'name': 'panghu', 'age': 19})
dict1 = {'name': 'panghu', 'age': 19}
# 1
print(dict1['name'])#panghu
dict1['level'] = 9  # 存一个'level': 9到字典中
print(dict1)#{'name': 'panghu', 'age': 19, 'level': 9}
#2 3
print(len(dict))
print('name' in dict1)#True
print(19 in dict1)#value进行成员运算只能得到False
#4del
del dict1['level']
print(dict1)#{'name': 'panghu', 'age': 19}
#5 键keys(),值values(),键值对items()
#得到字典中的所有key
print(dict1.keys())#dict_keys(['name', 'age'])
#得到字典中的所有values
print(dict1.values())#dict_values(['panghu', 19])
#得到字典中的所有items
print(dict1.items())#dict_items([('name', 'panghu'), ('age', 19)])
#6循环
for key in dict1:
    print(key)#只能得到name和age,就是key
    print(dict1[key])#得到panghu和19,就是value
#get
print(dict1.get('age'))#用get找不到会提示不存在输出None(better)
print(dict1['age'])#用中括号找不到直接报错
#如果找不到sex,为其设置一个默认值
print(dict1.get('sex','male'))#默认值并不会写入到dict1中,只是得到一个结果
print(dict1.get('name','male'))#如果可以找到name,直接无视默认值

猜你喜欢

转载自www.cnblogs.com/zhenwu/p/11086765.html