Python 基础语法(二)

--------------------------------------------接 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 基础语法(三) ----------------------------------------------

作者:Peter
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

Python 基础语法(二)的更多相关文章

  1. python基础语法(二)

    本文主要包括以下内容 函数 切片 迭代 列表生成式 生成器 迭代器 函数 定义函数 定义函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块 ...

  2. 【阿K学Python系列】一Python基础语法(二)

    前言 通过上一章的学习[阿k学Python]一Python入门(一),我们已经初步了解到Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,当然也是一门脚本语言,像前端需要学习的Jav ...

  3. python基础语法二

    迭代 test = "妹子有种冲我来" #可迭代对象 == 被for进行循环获取 for item in test: print(item) break #练习题: test = ...

  4. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  5. python基础语法(一)

    Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语 ...

  6. Python基础语法(转)

    作者:Peter 出处:http://www.cnblogs.com/Peter-Zhang/   Python 基础语法(一) Python的特点 1. 简单 Python是一种代表简单思想的语言. ...

  7. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  8. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  9. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

随机推荐

  1. Android模拟器配置选项说明

    Memory Options是模拟器的运行内存大小,类比电脑内存大小,就是在设置->应用程序中,正在运行标签页下面显示的那个大小Internal storage是模拟器内置存储空间大小,用于存放 ...

  2. MySQL校对规则(三)

    校对规则:在当前编码下,字符之间的比较顺序是什么? ci:不区分大小写,Cs区分大小写, _bin 编码比较 每个字符集都支持不定数量的校对规则,可以通过如下指令: show collation 可以 ...

  3. treap模版代码

    treap模版暂存. 以后修改整理. #include<cstdio> #include<iostream> #include <time.h> #include& ...

  4. ulink 固件更新问题

    1前言 ulink版本升级.. 当使用keil4.7.4版本时,ulink固件库更新了. 2官方资料解释: Boot Mode Utility Home » Appendix » Utilities  ...

  5. 解决win7资源监视器不能开启

    刚开始时是这样,点击开始监控,无效 需要开始服务即可解决

  6. resolve some fragment exception

    1.android fragment not attached to activity http://blog.csdn.net/walker02/article/details/7995407 if ...

  7. Varnost slovenskih GSM omrežij III

    V torek smo pisali tudi o tem, da Si.Mobil v svojem omrežju dovoli uporabo A5/0 (nešifriranega preno ...

  8. What is the difference Apache (Http Server) and Tomcat (Servlet Container)

    The Apache Project The Apache Project is a collaborative software development effort. Its goal is to ...

  9. PHP中的日期和时间

    日期和时间    1.UNIX时间戳        以32位整数表示的格林威治标准时间        这个UNIX时间戳整数是从1970年1月1日0时0分0秒(计算机元年)到现在的秒数         ...

  10. Maven Build profiles

    They modify the POM at build time, and are meant to be used in complementary sets to give equivalent ...