python列表,字典,元素集合

列表的增删改查
添加元素(“增”append, extend, insert)

append可以向列表添加元素
extend将另一个集合中的元素逐一添加到列表中
insert在指定位置index前插入元素

删除元素(“删”del, pop, remove)
del根据下标进行删除
pop删除最后一个元素
remove根据元素的值进行删除
如果元素不存在会报错所以应该先进行判断
If x in list:
List.remove(x)

a.count(元素) :a列表中有多少个元素

通过下标修改元素(“改”)
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
Name[i] = new value

查找元素(“查”in, not in, index, count)
in和not in
in(存在),如果存在那么结果为True,否则为False
not in(不存在),如果不存在那么结果为True,否则False
index和count
index和count与字符串中的用法相同

排序(sort, reverse)
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将list逆置。
a.sort(reverse=True)

浅拷贝 copy()
a = [1,2,3,4,5,[1,2,3,4]]
b = a.copy(). 只拷贝第一次的,第二层的列表的地址一样,还是地址传递
copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变

深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

import copy
d=copy.deepcopy(alist)

print alist;print d

[1, 2, 3, [‘a’, ‘b’]]

[1, 2, 3, [‘a’, ‘b’]]始终没有改变

alist.append(5)

print alist;print d

[1, 2, 3, [‘a’, ‘b’], 5]

[1, 2, 3, [‘a’, ‘b’]]始终没有改变

alist[3]

[‘a’, ‘b’]

alist[3].append(“ccccc”)

print alist;print d

[1, 2, 3, [‘a’, ‘b’, ‘ccccc’], 5]

[1, 2, 3, [‘a’, ‘b’]] 始终没有改变

python不允许修改元组的数据,包括不能删除其中的元素
元组是不可变的,也就是说元组一旦被复制是不可变的,但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变

与列表相比,元组的优势
1.通常元组用于不同的数据类型,列表用于相同(或相似)的数据类型
2.由于元组不可变,所以遍历元组要比列表快(较小的性能提升)
3.元组可以用作字典的key,而列表不行,因为字典的key必须是不可变的,元组本身就是不可变的
4.如果数组不需要更改,就将它作为元组来实现,以确保“写保护”

字典元素的操作
元素的删除
del 删除指定元素 del info[“name”]
del 删除整个字典 del info
clear 清空整个字典 info.clear()
pop 删除字典指定元素并且得到值 info.pop(“name”)
popitem 删除字典指定元素并且的到值:
随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高

元素的修改
字典中的每个元素是可以被修改的,只要可以通过key找到
Info[“name”] = lisi

元素的查找
获取指定的键:info.keys()
获取指定的值:info.values()

字典的键值操作
测量字典中,键值对个数 len()
print(len(info))

返回一个包含所有key的列表
list(info.keys())

返回一个包含所有value 的列表
info.values()

将字典以可遍历的(键,值)元组数据返回

for info in infos.items():
Print(into)

判断一个key是否在字典中
Python2.6 中 info.has_key(“name”)
Python3.x 以后 for “name” in info:

字典的遍历
通过 for………in 的语法结构,可以遍历字符串,列表,元组,字典等数据结构
遍历字典中的key
for key in info:
for key1 in info.keys():
遍历字典中的value
for value in info.values():
遍历字典中的item
for item in info.items():

遍历字典的key-value 对
元组下标方式:
for tuple in info.items():
Print(“key={},value={}”.format(tuple[0],tuple[1]))
拆元组方式:
for key,value in student.items():
print(“key={},value={}”.format(key,value))

使用枚举遍历enumerte()
遍历列表
Name = [“zhangsan”,”lisi”,”wangwu”]
for index,value in enumerate(name):
Print(“%d %s”%(index,value))
enumerate还可以接收第二个参数,用于指定索引起始值,如:
for index,value in enumerate(name,2)

遍历字典

字典键的遍历

for index,value in enumerate(info):
Print(“%d %s”%(index,value))

字典值的遍历

for index,value in enumerate(info.values()):
Print(“%d %s”%(index,value))

集合(set)
集合与之前列表、元组类似,可以存储多个数据,但是这些数据是不重复的。
集合对象还支持联合(union), 交集(intersection),差集(difference)和对称差集(sysmmetric_difference)等数学运算。
差集(a-b)是:项在a中,但不在b中。

集合(set)、列表(list)、元组(tuple)相互转换

因为set不允许有重复值,所以注意:使用set,可以快速的完成对list中的元素去重复的功能
运算符
Python 表达式
结果
描述
支持的数据类型
+
[1, 2] + [3, 4]
[1, 2, 3, 4]
合并
字符串、列表、元组
*
‘Hi!’ * 3
[‘Hi!’, ‘Hi!’, ‘Hi!’]
复制
字符串、列表、元组
in
3 in (1, 2, 3)
True
元素是否存在
字符串、列表、元组、字典
not in
4 not in (1, 2, 3)
True
元素是否不存在
字符串、列表、元组、字典
注意,in在对字典操作时,判断的是字典的键

python内置函数
序号
方法
描述
1
cmp(item1, item2)
比较两个值
2
len(item)
计算容器中元素个数
3
max(item)
返回容器中元素最大值
4
min(item)
返回容器中元素最小值
5
del(item)
删除变量
双层元组的遍历
t = ((1,2,3,4,5),(2,3,4,5,6),(5,4,6,7),(1,2,3,4,5))
for i In t
Print(i)

(1,2,3,4,5)
(2,3,4,5,6)
(5,4,6,7)
(1,2,3,4,5)

猜你喜欢

转载自blog.csdn.net/Hash_Map_zong/article/details/82180408