设为首页 收藏本站
查看: 839|回复: 0

[经验分享] python入门:列表和元组

[复制链接]

尚未签到

发表于 2018-8-9 08:22:50 | 显示全部楼层 |阅读模式
  列表与元组的主要不同在于,列表是可以修改的,元组不可以。列表适用于需要中途添加元素的情形,元组适用于出于某种考虑禁止修改序列的情形。在需要处理一系列值时,序列很有用,在数据库中,你可能使用序列来表示人,其中第一个表示姓名,第二个表示年龄。用列表表示如下:
user=['Andy',20]  序列还可包含其他序列
user=['Andy',20]  
use=['john',21]
  
database=[user,usr]
  
database
  
[['Andy', 20], ['john', 21]]
  
data=['Aurora',user]
  
data
  
['Aurora', ['Andy', 20]]
  有几种操作使用于所有序列,包括索引、切片、相加、相乘和成员检查。另外还有一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。
  索引:
  序列中所有的元素都有编号-从0开始递增
set='Hello'  
set[0]
  
'H'
  
字符串就是由字符组成的序列,索引0指向第一个元素,这里为字母H,不同于其他一些语言,python没有表示字符的类型。因此一个字符就是只包含一个元素的字符串。
  这称为索引,还可使用负索引来获取元素
set[-1]  
'o'
  对于字符串字面量(以及其他序列字面量)可直接对其执行索引操作,无需先将其赋给变量,这与先赋给变量在对变量执行索引操作的效果一样。
'Hello'[1]  
'e'
  如果函数调用返回一个序列,可直接对其执行索引操作。例如,你只想获取用户输入的姓名第二位:
name=input('name: ')[2]  
name: john
  
name
  
'h'
  切片:
  使用索引来访问单个元素外,还可使用切片来访问特定范围内的元素,使用两个索引用冒号分隔:
tag='<a href=&quot;How long have you been studying python&quot;>python web site</a>'  
tag[9:30]
  
'How long have you bee'
  
tag[49:-4]
  
'python web site'
  切片适用于提取序列一部分,其中的编号非常重要,第一个索引是包含第一个元素的编号,第二个索引是切片后前一位的元素编号(下标从0开始)
number=[1,2,3,4,5,6,7,8,9,10]  
number[3:6]
  
[4, 5, 6]
  两个索引来指定切片的边界,其中一个索引指定的元素包含在切片内,第二个索引指定的元素不包含在切片内。
  简写:
# 如果切片结束与序列末尾,可省略第二个索引:  
number[-3:]
  
[8,9,10]
  
# 如果切片始于序列开头,可省略第一个索引:
  
number[:3]
  
[1,2,3]
  
# 复制序列
  
number[:]
  
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  步长:
  执行切片操作时,显示或隐示地制定起点和终点,但通常省略另一个参数,即步长。在普通切片中,步长为1(从一个元素移动到下一个元素),切片包含起点和终点之间的所有元素。
number[0:10:1]  
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  
number[0:10:2]
  
[1, 3, 5, 7, 9]
  也可以简写:
number[::4]  
[1, 5, 9]
  步长不能为0,但是可以是负数,这样获取元素的位置是从右向左。
number[::-2]  
[10, 8, 6, 4, 2]
  步长为正数时,它从起点移到终点,步长为负数时,它从终点移到起点。
  序列相加:
[1,2,3]+[4,5,6]  
[1, 2, 3, 4, 5, 6]
  
[1,2,3]+'world'
  
Traceback (most recent call last):
  
  File &quot;<pyshell#12>&quot;, line 1, in <module>
  
    [1,2,3]+'world'
  
TypeError: can only concatenate list (not &quot;str&quot;) to list
  不能拼接序列与字符串,虽然他们都是序列,一般不能拼接不同类型的序列。
  乘法:
'hello' * 2  
'hellohello'
  
[2] * 3
  
[2, 2, 2]
  如先定义序列但并不为其赋值可用
name=[None] *  5  
name
  
[None, None, None, None, None]
  成员资格:
  检查特定的值是否包含在序列中,使用in.满足条件返回true,否则返回false.
name='Andy'  
'A' in name
  
True
  
# 对于字符串来说只有它包含的字符才是其成员或元素。
  
'p' in 'python'
  
True
  长度、最小值、最大值
number=[100,20,80]  
len(number)
  
3
  
max(number)
  
100
  
min(number)
  
20
  
max(2,3,7)
  
7
  列表常用方法
#赋值  
x = [1,2,1]
  
x[1]= 3
  
x
  
[1, 3, 1]
  
# 删除元素
  
x = [1,3,1]
  
del x[1]
  
x
  
[1, 1]
  
# 给切片赋值
  
name=list('Perl')
  
name
  
['P', 'e', 'r', 'l']
  
name[3:]=list('ar')
  
name
  
['P', 'e', 'r', 'a', 'r']
  
# 还可以在不删除原有元素的情况下插入新元素
  
name[1:1]=list('el')
  
name
  
['P', 'r', 'l', 'e', 'r', 'a', 'r']
  
del name[1::2]
  
name
  
['P', 'l', 'r', 'r']
  方法是与对象(列表、数、字符串等)联系紧密的函数。
# 在末尾追加元素:append  
number.append(4)
  
number
  
[1, 2, 3, 4]
  
# 清空列表:clear
  
number.clear()
  
number
  
[]
  
# 复制:copy
  
a  = [1,2,3]
  
b = a
  
b[1]=4
  
b
  
[1, 4, 3]
  
a
  
[1, 4, 3]
  

  
a = [1,4,3]
  
b=a.copy()
  
b[1]=5
  
a
  
[1, 4, 3]
  
# 计数:count
  
['to','be','or','not','to','be'].count('to')
  
2
  
x=[[1,2],1,2,[1,2,[2,1]]]
  
x.count(1)
  
1
  
# 扩展追加exend
  
a =[1,2,3]
  
b= [4,5,6]
  
a.extend(b)
  
a
  
[1, 2, 3, 4, 5, 6]
  
b
  
[4,5,6]
  

  
a+b
  
[1, 2, 3, 4, 5, 6, 4, 5, 6]
  
a
  
[1, 2, 3, 4, 5, 6]
  
b
  
[4, 5, 6]
  

  
# 查找第一次在序列中出现的索引
  
a =['to','be','or','not','to','be']
  
a.index('be')
  
1
  
a[1]
  
'be'
  
# inster:插入
  
number = [1,2,3,4,5]
  
number.insert(2,8)
  
number
  
[1, 2, 8, 3, 4, 5]
  
# pop删除末尾最后一个元素并返回删除元素,pop是唯一既修改列表又返回一个非none值的列表方法。
  
number.pop()
  
5
  
number
  
[1, 2, 8, 3, 4]
  

  
number.insert(0,number.pop(0))
  

  
# 删除第一个指定值的元素
  
a =['to','be','or','not','to','be']
  
a.remove('to')
  
a
  
['be', 'or', 'not', 'to', 'be']
  
# 倒序排列:reverse
  
number = [2,8,3,4]
  
number.reverse()
  
number
  
[4, 3, 8, 2]
  
# 对列表就地排序指对原表进行修改:sort
  
number = [4,3,8,2]
  
number.sort()
  
number
  
[2, 3, 4, 8]
  元组:不可修改的序列
  元组的几种写法。
(1,2,3)  
1,2,3
  
(2,)
  
2,
3 * (20+2)  
66
  
3* (20+2,)
  
(22, 22, 22)
  
(22)与22完全等效,加上逗号,就能完全改变表达式的值
  函数tuple的工作原理与list很像,它将一个序列作为参数,并将其转换为元组。如果参数是元组,就原封不动的返回。
tuple([1,2,3])  
(1,2,3)
  
tuple('abc')
  
('a','b','c')
  
tuple((1,2,3))
  
(1,2,3)
  
x = 1,2,3
  
x[1]
  
2
  
x[0:2]
  
(1,2)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-548894-1-1.html 上篇帖子: 搭建etcd集群,python调etcd接口 下篇帖子: 用 ipdb 调试 Python 程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表