码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-04-03 17:30:13      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:app   数据   sig   有一个   sign   stat   div   inpu   复制   

列表也可以叫做(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.pop(-1)#删除指定位置的元素
citys.remove(北京)#删除指定的元素
citys.clear() #清空列表
del citys[-1]#删除指定位置的元素
print(citys)

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

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

print(citys[0])  #查找指定位置的
print(citys.index(广州)) #获取元素的下标,如果找不到这个元素会报错
print(citys.count(广州))#查找元素在列表中出现的次数
print(citys.reverse())  #就是把这个列表反转过来
print(citys)  #查看反转过来的结果

nums = [1,5,76,56,4,23]
nums.sort()  #排序,升序
nums.sort(reverse=True)  #排序,降序

print(nums)

合并

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

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)
nums = [1,2,3,4,5,6,7,8,9,10]
print(lis[0:10:2])   #步长,隔几个取一次
print(lis[0::3])  #步长,隔几个取一次
print(lis[::-1])   #如果步长是正数的话,从左往右取值,
print(lis[::-2])  #如果步长是负数的话,从右往左开始取值
lis.reverse()   #改变了原来list值
print(lis[::-1])  #产生了新的list,不会改变原来list的值
print(lis)

#切片操作同样适用于字符串
info = ‘今天,天气很好’
Print(info[0;2])

list循环小练习

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

for stu in stus:
    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)))

元祖

元祖也是一个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))

 

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

标签:app   数据   sig   有一个   sign   stat   div   inpu   复制   

原文地址:https://www.cnblogs.com/nuobao/p/8708651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!