本文摘自php中文网,作者coldplay.xixi,侵删。
python视频教程栏目介绍第二篇Python基础知识。

本系列Python基础教程共四篇,本文是第二篇。
6.2 元组
tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义。
- 支持索引和切片操作
- 可以使用 in查看一个元素是否在tuple中。
- 空元组()
- 只含有一个元素的元组("a",) #需要加个逗号
优点:tuple比list速度快;对不需要修改的数据进行‘写保护’,可以是代码更安全
tuple与list可以相互转换,使用内置的函数list()和tuple()。
1 2 3 | l = [1, 2, 3]
print ( l )# [1, 2, 3]t = tuple(l)
print (t) # (1, 2, 3)l = list(t) print (l) #[1, 2, 3]复制代码
|
元组最通常的用法是用在打印语句,如下例:
1 | name = "Runsen" age = 20print( "Name: %s; Age: %d" ) % (name, age)# Name: Runsen; Age: 20复制代码
|
函数如下:
返回元组中值为value的元素的个数
1 | t = (1, 2, 3, 1, 2, 3) print (t. count (2) )# 2复制代码
|
- index(value, [start, [stop]])
返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError
1 2 3 | t = (1, 2, 3, 1, 2, 3)
print ( t.index(3) )# 2try: print (t.index(4))except ValueError as V:
print (V) # there is no 4 in tuple复制代码
|
6.3 字典
字典由键值对组成,键必须是唯一的;
eg: d = {key1:value1, key2:value2};
空字典用{}表示;字典中的键值对是没有顺序的,如果想要一个特定的顺序,那么使用前需要对它们排序;
d[key] = value
,如果字典中已有key
,则为其赋值为value
,否则添加新的键值对key/value
;
使用del d[key]
可以删除键值对;判断字典中是否有某键,可以使用in 或 not in;
1 2 | 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函数如下:
删除字典中所有元素
1 2 | d1 = { "1" : "one" , "2" : "two" }
d1.clear() print (d1 )# {}复制代码
|
返回字典的一个副本(浅复制)
1 2 3 | d1 = { "1" : "one" , "2" : "two" }
d2 = d1. copy ()
print ( d2 )#{ '1' : 'one' , '2' : 'two' } print (d1 == d2) # Trueprint(d1 is d2) # False复制代码
|
浅复制值相同,但是对象不同,内存地址不同。
- dict.fromkeys(seq,val=None)
创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)
1 2 3 4 | 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' }复制代码
|
返回字典dict中键key对应值,如果字典中不存在此键,则返回default的值(default默认值为None)
1 | d5 = {1: "one" , 2: "two" , 3: "three" } print (d5.get(1) )#oneprint (d5.get(5)) #Noneprint (d5.get(5, "test" ) )#test复制代码
|
判断字典中是否有键key
1 2 | d6 = {1: "one" , 2: "two" , 3: "three" }
print ( d6.has_key(1) ) #Trueprint (d6.has_key(5)) #False复制代码
|
返回一个包含字典中(键, 值)对元组的列表
1 | 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复制代码
|
返回一个包含字典中所有键的列表
1 | d8 = {1: "one" , 2: "two" , 3: "three" } for key in d8.keys(): print (key)#1#2#3复制代码
|
返回一个包含字典中所有值的列表
1 2 | d8 = {1: "one" , 2: "two" , 3: "three" } for value in d8.values():
print ( value)#one#two#three复制代码
|
若字典中key键存在,删除并返回dict[key],若不存在,且未给出default值,引发KeyError异常
1 2 | d9 = {1: "one" , 2: "two" , 3: "three" } print (d9.pop(1) )#oneprint( d9) #{2: 'two' , 3: 'three' } print ( d9.pop(5, None)) #Nonetry:
d9.pop(5) # raise KeyErrorexcept KeyError, ke: print ( "KeyError:" , ke) #KeyError:5复制代码
|
删除任意键值对,并返回该键值对,如果字典为空,则产生异常KeyError
1 | 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
1 | d = {1: "one" , 2: "two" , 3: "three" } print (d.setdefault(1)) #oneprint (d.setdefault(5)) #Noneprint( d) #{1: 'one' , 2: 'two' , 3: 'three' , 5: None} print (d.setdefault(6, "six" )) #sixprint (d) #{1: 'one' , 2: 'two' , 3: 'three' , 5: None, 6: 'six' }复制代码
|
把dict2的元素加入到dict中去,键字重复时会覆盖dict中的键值
1 2 3 4 | 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' }复制代码
|
返回一个view对象,(key, value)pair的列表,类似于视图。优点是,如果字典发生变化,view会同步发生变化。在
迭代过程中,字典不允许改变,否则会报异常
1 | d = {1: "one" , 2: "two" , 3: "three" } for key, value in d.viewitems(): print ( "%s - %s" % (key, value))#1 - one#2 - two#3 - three复制代码
|
返回一个view对象,key的列表
1 2 | d = {1: "one" , 2: "two" , 3: "three" } for key in d.viewkeys():
print ( key)#1#2#3复制代码
|
返回一个view对象,value的列表
1 | d = {1: "one" , 2: "two" , 3: "three" } for value in d.viewvalues(): print (value)#one#two#three复制代码
|
6.4 序列
序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列。
序列的三个主要特点是
- 索引操作符和切片操作符
- 索引可以得到特定元素
- 切片可以得到部分序列
索引操作符和切片操作符
1 2 | numbers = [ "zero" , "one" , "two" , "three" , "four" ]
print (numbers[1] )# oneprint (numbers[-1] )# four# print ( numbers[5]) # raise IndexErrorprint (numbers[:]) # [ 'zero' , 'one' , 'two' , 'three' , 'four' ] print (numbers[3:]) # [ 'three' , 'four' ] print (numbers[:2]) # [ 'zero' , 'one' ] print (numbers[2:4] )# [ 'two' , 'three' ] print (numbers[1:-1] )# [ 'one' , 'two' , 'three' ] 复制代码
|
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。
如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。
注意,返回的序列从开始位置 开始 ,刚好在结束位置之前 结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。 可以用负数做切片。负数用在从序列尾开始计算的位置。
相关免费学习推荐:python视频教程
以上就是给小白整理的第二篇Python知识点的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
人生苦短我用Python是什么梗
Python怎么区分不同数据类型
Python扩展内置类型的实现方法分析
如何切换Python2和Python3
Python怎么调用地图
解决nginx+uwsgi部署django的所有问题(小结)_nginx
Python迭代器中next()的用法示例
Python 使用pil numpy 实现拼接图片
数据分析师为什么要学Python
Python支持返回函数的实例解析
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 给小白整理的第二篇Python知识点