8.1.3、Python__数据的容器,列表list,元组tuble,字典dict,集合set,enumerate和zip函数使用,格式化字符串,列表推导式

1、python的数据容器(数据结构)

列表(list),元组(tuble),字典(dict),集合(set)

2、列表:list

定义:[ ]
特点:可变的,元素有序,元素可重复,元素类型多样

增加:append(追加),insert(指定索引)

list1 = [1,2,3,4,5,6,7,8,9]
list1.append(10)
print(list1)
list1.insert(0,1.0)
print(list1)

修改:

list1[2] = '100'
print(list1)

删除:pop(移除最后一个元素),remove(直接删除)

#删除pop,移除最后一个元素
print(list1.pop())
#remove直接删除元素
list1.remove('100')
print(list1)

查:获取元素,切片

print(list1.index(5))
#通过索引获取元素
print(list1[4])
#切片[起始位置:结束位置(默认最后):步长(默认为1)]
print(list1[1:5:1])
print(list1[::-1])
排序sort()
list2.sort()    #默认升序
list2.sort(reverse=True)   #降序

#反转,本身反转

list1.reverse()

3、元组:tuble

定义:() 特点:不可变,不能修改元组,元素 类型多样,可重复 注意:当创建只有一个元素的元组时,需要加上,
元组方法少,index(查找,返回第一次出现索引),count(出现次数),支持切片

4、字典:dict(类似于map k-v结构的)

定义{
    
    "k1":"v1","k2":"v2"...}

特点:可变的,无序的,key-value格式,key不能重复,value可以是任意类型(元组,字典等) 查询非常慢,不会随着元素的增多而变慢
注意:key必须是不可变的,list不可以,基本数据类型和元组都可以

获取元素:

print(dict2["k1"])		//索引下标取
#调get方法获取元素
print(dict2.get("k9","key不存在返回这里"))	//安全,即使数据不存在也不会报错

更改:

dict2["k1"] = "v11"
print(dict2)

增加:

dict2["newkey"] = "newValue"
print(dict2)

删除:

dict2.pop("newkey")
print(dict2)

del dict2["k1"]
print(dict2)

示例:
dict3 = {
    
    
    "k1":"v1",
    True: "v4",
    False: "v5",
    1:"v2",
    0:"v3",
    2:"vvvv"
  }
#当字典在定义的时候出现True和False以及数值(0,1)的key,那么后面的会覆盖前面的值
#0与False相互覆盖,1与True相互覆盖

5、集合:set

定义{} 特点:可变,自动去重,无序,元素类型多样,元素是唯一的(不可重复)

增加:

set1.add("123")
print(set1)
交并差集
set1 = {
    
    1,2,3,4,5,6}
set2 = {
    
    4,5,6,7,8,9}

#交集`在这里插入代码片`
print(set1 & set2)
#并集
print(set1 | set2)
#差集
print(set1 - set2)

6、函数enumerate和zip

#enumerate获取元素时获取对应的下标

for i in enumerate(list1):
    print(i)

#zip函数:将两个list压成dict字典

key_list = ["k1","k2","k3"]
value_list = ["v1","v2","v3"]
for i in zip(key_list,value_list):
    print(i)

7、格式化字符串-----按照标准的格式输出

a = 2
b = 3
print(a, "*", b, "=", a * b)

#提前定义好模板

str_format = "{} * {} = {}"
print(str_format.format(a, b, a * b))

# 定义好一个规则,%d表示整型,%s表示字符串,%f表示浮点

print("%d * %d = %d" % (a, b, a * b))

8、函数range-----用于生成一个序列

#range(起始:结束:步长)
for i in range(1,11,2):
    print(i)

9、列表推导式

list1 = [str(i) for i in range(1, 11, 1) if i % 2 == 1]
print(list1)
打印列表list
print("|".join(list1))

10、99乘法表

#99乘法表
print("\n".join(["\t".join(["{}*{}={}".format(i,j,i*j) for j in range(1,i+1)  ]) for i in range(1,10,1)]))

猜你喜欢

转载自blog.csdn.net/nerer/article/details/121192876