本文实例讲述了Python学习笔记基本数据结构之序列类型list tuple range用法。分享给大家供大家参考,具体如下:
list 和 tuple
- list:列表,由 [] 标识; 有序;可改变列表元素
- tuple:元组,由 () 标识; 有序;不可改变元组元素(和list的主要区别)
list 和 tuple 的创建:
print([]) # 空list print(["a",1,True]) # 元素类型不限 print([x for x in range(0,6)]) # 列表推导式 print(list("a"),type(list("a"))) # 强制转化 print(()) # 空tuple print((1)) # 不是tuple print((1,)) # 单一元素tuple 一定要加, print(("a",1,True)) # 元素类型不限 print(tuple("a"),type(tuple("a"))) # 强制转化
空list l = []
list 用一对方括号,用','隔开里面的元素 l = [a]
l = ["a",1,True]
元素类型不限
列表推导式,如:[x for x in range(0,6)]
(下方会详细介绍 range
及 列表推导式)
类型转换 list()
空tuple t = ()
tuple 若只有一个元素时,注意表示为 t = (1,)
一定要有逗号
tuple 用一对圆括号,用','隔开里面多个的元素 t = ("a",1,True)
元素类型不限
类型转换 tuple()
range
range 可方便的生成一个等差的序列,有两种表示 range(stop) 、range(start, stop[, step]) ; 通常用在 for循环语句中
range(stop) 表示 0 到 stop(不包含stop) 等差为1 的数,如 range(4) 表示 0 1 2 3
range(start, stop[, step]) 表示 从 start 到 stop(不包含stop) 等差为step的数;step缺省为1,可设置为负数
print(type(range(4))) # range本身就是一个type for i in range(4): print(i) # 0 1 2 3 for i in range(-1): # 从0计数,无值 print(i) for i in range(4,7): # 4 5 6 print(i) for i in range(2,7,2): # 2 4 6 print(i) for i in range(5,2,-1): # 5 4 3 print(i)
序列操作
一般操作,不改变list本身
s = ["a",1,True,["b"],2] print("a" in s) # 判断元素存在于s print("a" not in s) # 判断元素不存在于s print("b" in s) print(1.0 in s) # 这边不判断int float类型不同 print("1" in s) # 这边的1为字符串 a = [1,2] b = [2,1,0] print(a+b) # 序列相加 print(a*3) # 序列乘法 s = [0,1.0,2,3,4,5,6,7,8] print(s[0],s[2],s[3]) # 通过下标来取出对应的元素 print(type(s[0])) print(type(s[1])) print(s[2:4]) # 取出一段list print(s[2:7:2]) # 根据步长取出一段list print(len(s)) # list长度,即包含几个元素 sum = 0 for i in range(0,len(s)): # 使用for循环来取出list的每个元素 print(s[i]) sum += i # 赋值的简单表达式,相当于 sum = sum + i print(sum) # 总和 print(min(s),max(s)) # 取最小/最大;注意元素类型间若不可比较,会报错 s = [2,3,1,2,2,3] print(s.index(2)) # 查找对应元素第一次出现的下标 # print(s.index(4)) # 不存在该元素会报错 print(s.index(2,3)) # 从下标为3的开始找起 print(s.index(2,3,4)) # 从下标为3到下标4的阶段内找 print(s.count(2)) # 输出为2的元素的个数 print(s.count("2")) # 找不到匹配元素,返回0
上方列出的操作方法对 tuple 也都适用,因为并不改变序列本身的元素,如
s = (2,3,1,2,2,3) print(s[2],s[2:4],len(s),s.count(2)) # 对tuple均适用
改变序列的操作:仅对 list 适用;若对 tuple 操作,会报错;clear()
和 copy()
是 Python 3.3 才新增的方法
list的增、删、改的操作实际都比较实用,需要熟练掌握
list元素更改
可对 list 不同的下标表示法做以下操作,一般 list 下标的操作仅作对单一元素的更改赋值,如 s[0]=1 ;对多个元素的操作见下方示例(仅供参考)
s = [0,1,2,3] s[0] = "1" print(s) # 对list的某一元素赋另外的值,类型也跟随改变 s[4] = 1 # 不可超过原list的长度,会报错 s[0:3] = [2,3,4] # 可对一段元素赋另外的值 print(s) s[0:3] = ["x","x"] # 可缺少,元素个数也就相应的减少了 print(s) s[0:2] = ["x","x","x","x"] # 可增加,元素个数也就相应的减加了 print(s) s[0] = [0,0] # 单个元素注意,相当于赋值,把序列赋予该元素 print(s) s[1:2] = [0,0] print(s) s = [0,1,2,3,4,5,6,7,8] s[1:8:2] = ["x"]*4 # s[1:8:2] = ["x"]*3 # 这种表示方式元素个数一定需要相同,不然会报错 print(s)
list元素删除
s = [0,1,2,3,4,5,6,7,8] del s[0:4] # 删除对应的元素 print(s) s = [0,1,2,3,4,5,6,7,8] del s[1:8:2] # 做删除 print(s) s = [0,1,2,3,4,5,6,7,8] s.pop(3) print(s.pop(3),s) # 做删除,并且返回该元素的值 print(s.pop(),s) # 默认删除最后一个 s = [2,"1",1.0,1,2,1] s.remove(1) # 删除第一个值为 1 的元素 print(s) s.clear() # 置空,Python3.3引入 print(s)
list元素增加
s = [0,1,2,3,4] s.append(5) # list 最后加一个元素 print(s) s.extend([6,7]) # list 最后拼接序列 print(s) s.extend(range(3)) print(s) s.insert(1,["x"]) # 在1的位置插入["x"] print(s)
其他操作,reverse
、copy
等
s = [1,2,3] c = s.copy() # 相当于 c = s print(c) c.reverse() print(c) s = [2,3,1,4] s.sort() # 排序 print(s) # s = ["b",1,"a",True] # 报错,必须是可比较的类型 s = ["b","a"] s.sort() print(s)
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。