python学习之列表、切片、元祖

列表也可以叫做(list、数组、arrary)

name = ['张三','李四','小萌','李丽','悟空']
#          0      1      2    3     4     下标、(角标,索引)

print(name[1])

print(name[-1]) #最前面一个元素下标是0,最后一个元素下标是-1

对列表进行增删改查

增 append(在列表末尾添加一个元素)、 insert

citys = []

citys.append('北京')    #在列表末尾加增加一个元素
citys.insert(0,'上海')   #在指定的位置增加一个元素
citys.append('广州')
print(citys)
打印结果['上海', '北京', '广州']

删  pop remove clear

citys=['上海', '北京', '广州']
citys.pop(-1)#删除指定位置的元素
citys.remove('北京')#删除指定的元素
citys.clear() #清空列表
del citys[-1]#删除指定位置的元素
print(citys)

citys = ['上海','北京','广州']
citys[1] = '南京'    #修改指定位置的元素,如果指定的下标不存在,会报错
print(citys)

打印结果

['上海','南京','广州']

查  index(获取下标)count(出现次数)

citys=['北京','上海','广州']
print
(citys[0]) #查找指定位置的 print(citys.index('广州')) #获取元素的下标,如果找不到这个元素会报错 打印结果2 print(citys.count('广州'))#查找元素在列表中出现的次数 print(citys.reverse()) #就是把这个列表反转过来 print(citys) #查看反转过来的结果 nums = [1,5,76,56,4,23] nums.sort() #排序,升序
print(nums) #打印结果[1,4,5,23,56,74]
nums = [1,5,76,56,4,23]
nums.sort(reverse=True) #排序,降序 print(nums) #打印结果[74,56,23,5,4,1]

合并

citys = ['上海','北京','广州']
citys2 = ['杭州','江苏','厦门']
citys.extend(citys2)
print(citys)      #把ciytys2合并到citys
print(citys+citys2)  #合并列表
print(citys*2)  #*几次就是复制几次

多维数组

words = ['name','code','flower',['usa','china''car']]  #二维数组
words = ['name', 'code', 'flower', ['usa', 'china''car',['hello','198','nice']]]     #三维数组

print(words[-1][-1][0])   #取hello
print(words[-1][1])   #取china

 

list小练习,校验用户名是否合法

#校验用户名是否合法
#输入账号  #input
#如果账号存在的,提示已经被注册,如果不存在,就让他去注册all_users[]
#不能为空 strip()
#用户名长度6-12位之间  len() 元素的个数
#最多输入3次
all_users = ['xiaomeng','niuhanyang','liangpan']
for i in range(3):
    username = input('请输入账号:').strip()
    if len(username)>5 and len(username)<13:
        if all_users.count(username)>0:     #校验账号是否存在
            print('账号已被注册')
        else:
            print('这个名字不错,快去注册吧!')
            break
    else:
        print('用户名长度不合法,长度在6-12位之间')
else:
    print('输入次数过多')

切片,切片是list一种取值方式,取多个值。 它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是lis[1:10]nums = ['李四','王五','宝宝','张三']

print(nums[0])   #取下标0的值
print(nums[1:3])  # 取下标1到3的值,但不包括3。  顾头不顾尾
print(nums[1:])  #取从第二个下标开始的后面所有元素。 如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
print(nums[:2])  #如果从头开始取,取到后面某个下标结束,那么开头的下标可以不写
print(nums[:])   #取所有的

#带步长取值
lis = list(range(1,11))   #强制类型转换
print(lis)
lis = [1,2,3,4,5,6,7,8,9,10]
#下标 0 1 2 3 4 5 6 7 8 9 print(lis[0:10:2]) #步长,隔几个取一次 [1,3,5,7,9] print(lis[0::3]) #步长,隔几个取一次 [1,4,7,10] print(lis[::-1]) #如果步长是正数的话,从左往右取值,[10,9,8,7,6,5,4,3,2,1] print(lis[::-2]) #如果步长是负数的话,从右往左开始取值[10,8,6,4,2] lis.reverse() #改变了原来list值 new_list = lis[::-1] #产生了新的list,不会改变原来list的值
print(new_list) #[1,2,3,4,5,6,7,8,9,10]
print(lis) #[10,9,8,7,6,5,4,3,2,1] #切片操作同样适用于字符串 info = '今天,天气很好' print(info[0:2])

list循环

for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素 (字符串 list 都可以循环)

int  float不可循环

#for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素  (字符串  list  都可以循环)
二维数组循环
lists = ['张流量','李wifi','王路由器','牛网线',[1,2,3,4]]
for name in lists:
    if type(name) == list:
        for i in name:
            print(i)
    print(name)

lists = ['张流量','李wifi','王路由器','牛网线']
for name in lists:
    print(name)

#字符串循环
words ='marry , lily'
for i in words:
    print(i)

 

list循环小练习

stus=[
  ['小明','未交'],
  ['小白','已交'], ['小紫','已交'],
  ['小红','未交'], ['小绿','未交'],
  ['小黄','未交'], ['小黑','已交']
]
pass_list = [ ] #所有已经交作业的同学
fail_list = [ ] #没有交作业同学的名字
stus[0][1]  #取到状态
stus[0][0]  #取到名字

for stu in stus:
#print(stu) ['小明','未交'] ['小白','已交'] ......['小黑','已交'] status
= stu[1] #状态 name = stu[0] #取名字 if status == '未交': fail_list.append(name) else: pass_list.append(name) print('未交作业的所有同学是 %s , 总共有%s个人'%(fail_list,len(fail_list))) print('已交作业的所有同学是 %s , 总共有%s个人'%(pass_list,len(pass_list)))

元祖(tuple)

元祖也是一个list,他和list的区别是,元组里面元素无法修改,比如用户数据库的链接信息

t = (1,2,4,5,6,7)
#print(type(t))

#试试循环,切片,下标取值,修改值能不能用
print(t[:3])   #切片
print(t[3])   #下标取值
for i in t:
    print(i)  #循环
t[2] =9
print(t)   #修改  不可修改 报错TypeError: 'tuple' object does not support item assignment
mysql_coon = ('192.168.1.109','root','123456',3306,'my_db')  #数据库

#如果元祖里面只有一个元素的话,那么必须在这个元素后面加一个逗号
word1 = (1)
word2 = (1,)
print('word1',type(word1))
print('word2',type(word2))

 

posted @ 2018-04-03 15:15  xiaomeng15  阅读(437)  评论(0编辑  收藏  举报