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

[经验分享] Python 基础语法(二)

[复制链接]

尚未签到

发表于 2015-4-20 09:15:06 | 显示全部楼层 |阅读模式
  --------------------------------------------接 Python 基础语法(一) --------------------------------------------
  2. 元组
  tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义;支持索引和切片操作;可以使用 in
  查看一个元素是否在tuple中。空元组();只含有一个元素的元组("a",) #需要加个逗号
  优点:tuple比list速度快;对不需要修改的数据进行‘写保护’,可以是代码更安全
  tuple与list可以相互转换,使用内置的函数list()和tuple()。



l = [1, 2, 3]
print l # [1, 2, 3]

t = tuple(l)
print t # (1, 2, 3)

l1 = list(t)
print l1 #[1, 2, 3]
  元组最通常的用法是用在打印语句,如下例:



name = "Peter Zhang"
age = 25
print "Name: %s; Age: %d" % (name, age)
# Name: Peter Zhang; Age: 25
  函数如下:
  count(value)  ---返回元组中值为value的元素的个数



t = (1, 2, 3, 1, 2, 3)
print t.count(2) # 2
  index(value, [start, [stop]])  ---返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError



t = (1, 2, 3, 1, 2, 3)
print t.index(3) # 2
try:
    print t.index(4)
except ValueError, ve:
    print "there is no 4 in tuple"  # there is no 4 in tuple
    3. 字典
  字典由键值对组成,键必须是唯一的;eg: d = {key1:value1, key2:value2};空字典用{}表示;字典中的键值对是没有顺序的,如果想要
  一个特定的顺序,那么使用前需要对它们排序;d[key] = value,如果字典中已有key,则为其赋值为value,否则添加新的键值对key/value;使
  用del d[key] 可以删除键值对;判断字典中是否有某键,可以使用in 或 not in;



d = {}
d["1"] = "one"
d["2"] = "two"
d["3"] = "three"
del d["3"]
for key, value in d.items():
    print "%s --> %s" % (key, value)
#1 --> one
#2 --> two
  dict函数如下:
  clear()  ---删除字典中所有元素



d1 = {"1":"one", "2":"two"}
d1.clear()
print d1 # {}
  copy()  ---返回字典的一个副本(浅复制)



d1 = {"1":"one", "2":"two"}
d2 = d1.copy()
print d2 #{'1': 'one', '2': 'two'}
  dict.fromkeys(seq,val=None) ---创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)



l = [1, 2, 3]
t = (1, 2, 3)
d3 = {}.fromkeys(l)
print d3 #{1: None, 2: None, 3: None}

d4 = {}.fromkeys(t, "default")
print d4 #{1: 'default', 2: 'default', 3: 'default'}
  get(key,[default])  ---返回字典dict中键key对应值,如果字典中不存在此键,则返回default 的值(default默认值为None)



d5 = {1:"one", 2:"two", 3:"three"}
print d5.get(1) #one
print d5.get(5) #None
print d5.get(5, "test") #test
  has_key(key)  ---判断字典中是否有键key



d6 = {1:"one", 2:"two", 3:"three"}
print d6.has_key(1)  #True
print d6.has_key(5)  #False
  items()  ---返回一个包含字典中(键, 值)对元组的列表



d7 = {1:"one", 2:"two", 3:"three"}
for item in d7.items():
    print item
#(1, 'one')
#(2, 'two')
#(3, 'three')

for key, value in d7.items():
    print "%s -- %s" % (key, value)
#1 -- one
#2 -- two
#3 -- three
  keys()  ---返回一个包含字典中所有键的列表



d8 = {1:"one", 2:"two", 3:"three"}
for key in d8.keys():
    print key
#1
#2
#3
  values()  ---返回一个包含字典中所有值的列表



d8 = {1:"one", 2:"two", 3:"three"}
for value in d8.values():
    print value
#one
#two
#three
  pop(key, [default])  ---若字典中key键存在,删除并返回dict[key],若不存在,且未给出default值,引发KeyError异常



d9 = {1:"one", 2:"two", 3:"three"}
print d9.pop(1) #one
print d9 #{2: 'two', 3: 'three'}
print d9.pop(5, None) #None
try:
    d9.pop(5)  # raise KeyError
except KeyError, ke:
    print  "KeyError:", ke #KeyError:5
  popitem()  ---删除任意键值对,并返回该键值对,如果字典为空,则产生异常KeyError



d10 = {1:"one", 2:"two", 3:"three"}
print d10.popitem()  #(1, 'one')
print d10  #{2: 'two', 3: 'three'}
  setdefault(key,[default])  ---若字典中有key,则返回vlaue值,若没有key,则加上该key,值为default,默认None



d = {1:"one", 2:"two", 3:"three"}
print d.setdefault(1)  #one
print d.setdefault(5)  #None
print d  #{1: 'one', 2: 'two', 3: 'three', 5: None}
print d.setdefault(6, "six") #six
print d  #{1: 'one', 2: 'two', 3: 'three', 5: None, 6: 'six'}
  update(dict2)  ---把dict2的元素加入到dict中去,键字重复时会覆盖dict中的键值



d = {1:"one", 2:"two", 3:"three"}
d2 = {1:"first", 4:"forth"}
d.update(d2)
print d  #{1: 'first', 2: 'two', 3: 'three', 4: 'forth'}
  viewitems()  ---返回一个view对象,(key, value)pair的列表,类似于视图。优点是,如果字典发生变化,view会同步发生变化。在
  迭代过程中,字典不允许改变,否则会报异常



d = {1:"one", 2:"two", 3:"three"}
for key, value in d.viewitems():
    print "%s - %s" % (key, value)
#1 - one
#2 - two
#3 - three
  viewkeys()  ---返回一个view对象,key的列表



d = {1:"one", 2:"two", 3:"three"}
for key in d.viewkeys():
    print key
#1
#2
#3
  viewvalues()  ---返回一个view对象,value的列表



d = {1:"one", 2:"two", 3:"three"}
for value in d.viewvalues():
    print value
#one
#two
#three
  4. 序列
  序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列;序列的两个主要特点是
  索引操作符和切片操作符;索引可以得到特定元素;切片可以得到部分序列;



1 numbers = ["zero", "one", "two", "three", "four"]
2
3 print numbers[1] # one
4 print numbers[-1] # four
5 #print numbers[5] # raise IndexError
6
7 print numbers[:] # ['zero', 'one', 'two', 'three', 'four']
8 print numbers[3:] # ['three', 'four']
9 print numbers[:2] # ['zero', 'one']
10 print numbers[2:4] # ['two', 'three']
11 print numbers[1:-1] # ['one', 'two', 'three']
  切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。 如果不指定第一个数,Python就从
  序列首开始。如果没有指定第二个数,则Python会停止在序列尾。 注意,返回的序列从开始位置 开始 ,刚好在结束位置之前 结束。即开始位置是
  包含在序列切片中的,而结束位置被排斥在切片外。 可以用负数做切片。负数用在从序列尾开始计算的位置。
  5. 绑定
  当创建一个对象并给它赋一个变量的时候,这个变量仅仅“指向”那个对象,而不是表示这个对象本身! 也就是说,变量名指向计算机中存储那个
  对象的内存,这被称作名称到对象的绑定
  如果要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单对象),那么必须使用切片操作符来取得拷贝。
---------------------------------------------- 见续  Python 基础语法(三) ----------------------------------------------

运维网声明 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-58655-1-1.html 上篇帖子: Python 基础语法(三) 下篇帖子: python __init__.py
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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