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

[经验分享] python列表和元组(第二章)

[复制链接]

尚未签到

发表于 2018-8-12 10:21:35 | 显示全部楼层 |阅读模式
python列表和元组(第二章)
1)列表和元组
python包涵6中内建的序列(列表,元组,字符串,Unicode字符串,buffer对象和xrange对象),本章讲常用的2中类型:列表和元组。列表和元组的区别:列表可以修改,元组则不能。
2)索引
>>> greet='hello  >>> greet[0]
  'h'
>>> greet='hello'  >>> greet[-5]
  'h'
上面2者显示的结果是一致的,因为字符串是有字符组成的序列,索引0指向第一个元素,就是hello这个单词中得第一个字母h,而python最后一个元素定义为-1,最后第二个元素定义为-2,所以h为倒数第五个字母,所以定义为-5。 3)索引例子:编写日期索引,显示结果为月份 日期,年份。
months=['1m','2m','3m','4m','5m','6m','7m','8m','9m','10m','11m','12m']endings=['st','nd','rd']+17*['th']\  +['st','nd','rd']+7*['th']\
  +['st']
year=raw_input('year:')  month=raw_input('month(1~12):')
  day=raw_input('day(1~31):')
month_number=int(month)  day_number=int(day)
month_name=months[month_number-1]  day_name=day+endings[day_number-1]
print month_name + '_'+day_name+'_,' +year 显示结果为:year:2011  month(1~12):11
  day(1~31):12
  11m 12th ,2011
【注:python下要将月份跟日期减1,以获取正确的索引。比如说现实日期为11号,因为python从0开始,所以python下索引10为日期11号】4)分片:
>>> test=[1,2,3,4,5,6,7,8,9]  >>> test[3:8]
  [4, 5, 6, 7, 8]
【注:第一个索引3,是python序列从0开始数,数到3,也就是正常数值4,第二个索引是正常数值下的8,即一个用py数,一个用正常数】>>> test=[1,2,3,4,5,6,7,8,9]  >>> test[-4:]
  [6, 7, 8, 9]
【注:显示为倒数-4位置数值到末尾数值】5)例:对url进行分割
>>> url='www.baidu.com'  >>> url[4:-4]
  'baidu'
  【注:或许有这样的疑问:[4:-4]第一个表示从左边数py下的第4个,也就是元素中的第5个,的确是字母“b”,但后面那个-4不是从末尾元素-1开始数起,这样数的话,-4应该是".",为啥是字母u呢?
回答:索引里第二个index是负数的话,是除去从右边数那么多个的意思,所以是-4的话,就是除去右边4个,所以是把".com"除掉了,而不是从右边数第4个。】6)例:检查用户和密码的脚本:
database=[  ['lf','123'],
  ['zml','911011'],
  ['lxm','580307'],
  ['zzg','541223']]
username=raw_input('put name:')  code=raw_input('put code:')
  if [username,code] in database:print 'right'
显示结果为:put name:lxm  put code:580307
  right
经测试database后面也可以用()来包含数据信息。 7)改变列表:
例:改变列表里第3个元素的数值>>> x=[1,2,3]  >>> x[2]=6
  >>> x
  [1, 2, 6]
【注:x[2]是指py里的2,也就是实际数值里的第3位,并不是指替换x里数值为2的数,因为是用索引来标记替换的值】  8)分片赋值:
>>> name=list('perl')  >>> name
  ['p', 'e', 'r', 'l']
  >>> name[2:]=list('ace')
  >>> name
  ['p', 'e', 'a', 'c', 'e']
【注:name[2:]表示从py的2开始,包括2在内,被新list里的内容替换掉】>>> num=[1,2,3,4,5]  >>> num[1:4]=[]
  >>> num
  [1, 5]
【注:当[1:4]替换为[](空)时,就类似于删除这些元素】9)append---用于在列表末尾追加新的对象
>>> num=[1,2,3]  >>> num.append(4)
  >>> num
  [1, 2, 3, 4]

10)count---统计某个元素在列表中出现的次数
>>> [1,2,1,[1,2],[1,[1,2]]].count(1)------>2  >>> [1,2,1,[1,2],[1,[1,2]]].count([1,2])------>1
  >>> [1,2,1,[1,2],[1,[1,2]]].count([1,[1,2]])------>1
11)extend---在列表末尾一次性追加另一个序列中的多个值(不同于append),即用新列表扩展原有列表,和连接操作不同,连接操作返回一个新列表,而extend方法会修改原始的列表
>>> a=[1,2,3]  >>> b=[4,5,6]
  >>> a.extend(b)
  >>> a
  [1, 2, 3, 4, 5, 6]


12)index---找出第一个匹配的索引
>>> word=['we','are','the','world','on','the','earth']  >>> word.index('world')------->3
>>> word=['we','are','the','world','on','the','earth']  >>> word.index('the')---------->2
13)remove---删除第一个匹配的索引
  >>> word=['we','are','the','world','on','the','earth']
  >>> word.remove('world')---------->['we', 'are', 'on', 'the','earth']

14)insert---将对象插入到列表里
>>> num=[1,2,3,4,5]  >>> num.insert(5,'xx')
  >>> num
  [1, 2, 3, 4, 5, 'xx']


15)pop---移除列表中一个元素(默认为最后一个),并且显示该元素的值。
>>> num=[1,2,3,4,5]  >>> num.pop()------>5
  >>> num------->[1, 2, 3, 4]

>>> num=[1,2,3,4,5]  >>> num.pop(3)----->4
  >>> num-------->[1, 2, 3, 5]

【注:pop是唯一一个既能修改列表又能返回元素值的列表方式】
  16)py里有种常见的数据结构叫---栈,一般分别入栈和出栈,而pop和append方法操作结果恰好相反,如果入栈刚刚出栈的值,最后得到的结论还是原来的栈。
例:>>> num=[1,2,3,4]  >>> num.append(num.pop())
  >>> num
  [1, 2, 3, 4]


17)reserver---将表中的元素反向存放
>>> num=[1,2,3,4,5]  >>> num.reverse()
  >>> num
  [5, 4, 3, 2, 1]

18)sort---把元素按照一定的顺序排列。
>>> x=[3,1,2,6,9,7]  >>> x.sort()
  >>> x
  [1, 2, 3, 6, 7, 9]

例:保留x表里的列表不变,y里显示为排序后的列表
>>> x=[3,1,2,6,9,7]  >>> y=x.sort()
  >>> print y
  None------------提示为none,这是
因为sort方法修改了x却返回了空值,最后得到的是已经排序的x和值为none的y。

>>> x=[3,1,2,6,9,7]  >>> y=x[:]
  >>> y.sort()
  >>> x------>[3, 1, 2, 6, 9, 7]
  >>> y------>[1, 2, 3, 6, 7, 9]

这个方法是正确的,先把x的副本赋值给y,然后对y进行排序,而x还依旧存在。
19)高级排序,例:
>>> x=[4,6,2,1,7,9]  >>> x.sort(reverse=True)
  >>> x
  [9, 7, 6, 4, 2, 1]

注:(reverse=True或者False)的时候,比如第一个字母必须大写,否则无法识别。
20)元组
tuple---与list函数相同,但这个用于元组。
>>>tuple([2,3,4])  >>>(2, 3, 4)

运维网声明 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-550509-1-1.html 上篇帖子: 使用python发送html邮件 下篇帖子: cPanel虚拟主机上运行Python的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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