python自学笔记13:元组和字典的操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自学笔记13:元组和字典的操作相关的知识,希望对你有一定的参考价值。
参考技术A定义元组(tuple):
t1=(1,2,3,4)#多个数据元组
t2=(1,)#如果元组内只有一个数据,也需要手逗号隔开,否则这个数据将是他本身的类型。
元组的操作:
元组类型数据不支持修改,可查找
查找:
按下标查找:
print(t1[1])
函数查找:
print(t1.index(1))返回对应下标,如果数据不存在,程序将报错
print(t1.count(1))统计数据在元组当中出现的次数
print(len(t1))统计元组当中的数据个数
注意:当元组内嵌套列表数据,可以通过下标的方法对列表数据进行修改如:
t3=(1,2,["a","b"])
t3[2][0]=c #t3的值将变为(1,2,["c","b"])
——————————————————
——————————————————
定义字典(dict)
字典的特点
1:符号为
2:数据为键(key)值(value)对形式,每个键值对之间用逗号隔开如:
dict1="name":"小明","age":18,"gender:男"
字典的操作:
dict1["name"]="小红"
dict1["id"]=3
如果key存在,将修改其所对应的值。如果不存在,将在字典最后添加该键值对
2.删除数据
del():删除字典或删除字典内的键值对
del dict1["name"] 删除字典内的键值对,如果删除的key不存在,程序将会报错
del(del)删除字典
clear(dict1) 清空字典
3.查找数据
一.按照key进行查找,最后返回相对应的值
二.按函数进行查找:
(1) get(key,默认值):
如果查找的key不存在则返回所写的默认值,如果不写默认值则返回None
dict1="name":"小明","age":18,"gender:男"
print(dict1.get("name")) #小明
print(dict1.get("id",110)) # 110
——————————————————
(2) keys():返回字典内的所有key 可用for遍历
print(dict1.keys())
返回 ["name","age","gender"]
for key in dict1.keys():
..print(key)
逐行输出name age gender
——————————————————
(3) values(): 返回字典内的值 可用for遍历
print(dict1.values())
返回["小明",18,"男"]
for value dict1.values():
..print(value)
逐行输出小明 18 男
——————————————————
(4) items():将字典内的数据以元组的形式返回
print(dict1.items()) 可用for遍历
返回[("name","小明"),("age",18),("gender","男")]
for item in dict1.items():
..print(item)
逐行输出 ("name","小明") ("age",18)("gender","男")
——————————————————
遍历字典键值对(拆包) 可在for内使用两个临时变量
dict1="name":"小明","age":18,"gender:男"
for key,value in dict1.items():
..print(f"key=value")
逐行输出:
name=小明 age=18 gender=男
2-1Python列表元组和字典
列表
列表是由一序列特定顺序排列的元素组成。可以把字符串,数字,字典等都可以、加入到列表中。列表也是带下标的,默认也是从0开始。
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
print(type(l))
print(dir(l))
运行结果:
<type ‘list‘>
[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__delslice__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getslice__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__setslice__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]
‘append‘ ,list 的末尾增加一个元素
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
print(l)
l.append(‘hello‘)
print(l)
运行结果:
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3]
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3, ‘hello‘]
‘index‘ ,符合条件的list下标
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
print(l.index(‘c‘))
运行结果:
2
‘insert‘,符合条件的list下标
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
l.insert(2,‘12306‘)
print(l)
运行结果:
[‘a‘, ‘b‘, ‘12306‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3]
‘pop‘, 末尾删除一个list元素
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
print(l)
l.pop()
print(l)
运行结果:
[‘a‘, ‘b‘, ‘12306‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3]
‘remove‘,删除一个list元素
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
l.remove(‘c‘)
print(l)
运行结果:
[‘a‘, ‘b‘, ‘d‘, ‘e‘, 1, 2, 3]
‘reverse‘, list 反序
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
print(l)
l.reverse()
print(l)
运行结果:
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3]
[3, 2, 1, ‘e‘, ‘d‘, ‘c‘, ‘b‘, ‘a‘]
‘sort‘, 对list进行排序
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,1,2,3]
print(l)
l.sort()
print(l)
运行结果:
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3]
[1, 2, 3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]
列表切片
字符串、列表、元祖在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以使用切片去存取他们的任意部分。可以把序列想成一个队列,我们可能需要前面3位,后面3位或者隔一位等,使用切片实现上述要求。
切片操作符在python中的原型是:
[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其他语言一样,从0 开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引值。
步长值,默认是一个接一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0.
元组
tuple是不可变的list
1、Tuple的定义形式
t = [‘a‘,‘b‘,‘c‘,‘abc‘,‘123‘]
print(dir(t))
print(type(t))
tuple 唯一和list定义的区别就是[]变成了(),其他没有什么变化,tuple不能增加和减少,他本身自己的方法很少,只有count和index两个方法,其他list方法都不可以用。
2、Tuple单个元素
Tuple在表示单个元素的时候,是比较特别的。
a = (1,)
print(type(a))
<type ‘tuple‘>
<type ‘tuple‘>
b = (‘abc‘)
print(type(b))
<type ‘str‘>
由上面例子可以知道,tuple在表示单个元素的时候,必须用,进行分割。否则Python解析器不会认为是元组。
3、Tuple的方法
‘count‘ ,统计某个元素的个数
a= [‘a‘,‘b‘,‘c‘,‘abc‘,‘123‘,‘a‘]
print(a.count(‘a‘))
‘index‘,返回某个元素的下标,不存在就报错。
字典
字典是一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中,字典赋值有3种方式
k = {‘name‘:‘zhan‘,‘age‘:100,123:‘abc‘}
d = dict(a=1,b=2,c=3)
d = dict([(‘name‘,‘list‘),(‘age‘,20)])
字典有很多种用法:
get
setdefault
keys
values
iteritems
update
fromkeys
zip
pop
k = {‘name‘:‘zhan‘,‘age‘:100,123:‘abc‘}
字典get方法
print(k.get(‘name‘))
print(k.get(‘age‘))
print(k.get(‘address‘))
字典setdefault方法
print(k.setdefault(‘name‘,‘hello‘))
print(k.setdefault(‘age‘,121))
print(k.setdefault(‘address‘,‘shenzhen‘))
运行结果:
zhan
100
shenzhen
字典keys
print(k.keys)
运行结果:
[‘age‘, 123, ‘name‘]
字典values
print(k.values())
运行结果:
[100, ‘abc‘, ‘zhan‘]
字典iteritems
print(k.iteritems())
for k,v in k.iteritems():
print(k,v)
运行结果:
<dictionary-itemiterator object at 0x00000000026F74A8>
(‘age‘, 100)
(123, ‘abc‘)
(‘name‘, ‘zhan‘)
m = {}
l = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
n = m.fromkeys(l,123)
#n = dict.fromkeys(l,123)
print(n)
运行结果:
{‘a‘: 123, ‘c‘: 123, ‘b‘: 123, ‘e‘: 123, ‘d‘: 123}
l1 = [‘a‘,‘b‘,‘c‘,‘d‘]
l2 = [1,2,3,4]
d = zip(l1,l2)
print(d)
运行结果:
[(‘a‘, 1), (‘b‘, 2), (‘c‘, 3), (‘d‘, 4)]
对字典排序
d = {‘a‘:1,‘b‘:44,‘c‘:12,‘d‘:123}
sorted(d.iteritems(),key= lambda x:x[1],reverse=True)
print(d)
运行结果:
{‘a‘: 1, ‘c‘: 12, ‘b‘: 44, ‘d‘: 123}
以上是关于python自学笔记13:元组和字典的操作的主要内容,如果未能解决你的问题,请参考以下文章