文章目录

  • 前言
  • 一、列表
  • 1、列表的赋值
  • 2、循环和随机数
  • a、生成随机数
  • b、列表的排序操作
  • c、冒泡排序
  • d、嵌套列表的遍历
  • 3、列表常用循环
  • 列表常用循环
  • 4、 选择排序
  • 5、插入排序
  • 二、元组
  • 1、基本使用
  • 函数
  • 三、字典
  • 1、基本操作
  • a、set用法
  • b、案例
  • c、删除
  • d、in/not in
  • e、遍历
  • 五、items()用法
  • 六、values()用法


前言

在语言的使用中,无论使java,亦或者python,对列表、元组(pytho专属)、字典(python专属)的使用是十分常见,并且用法奇多复杂,今儿就对其进行解释和举例,进一步的走进python.

一、列表

一种数据结构,它可以存储不同类型的数据(尽量保存的是统一种的类型)

案例

A=[1,'xiaoWang','a',[2,'b']]
a、lst = [1,2,3,4,5,6]#list使用[] , {}字典,()tuple

1、列表的赋值

list.append(元素) 在列表尾部追加元素

第一种

lst.append(10)#再尾部追加
#结果:[1, 2, 3, 4, 5, 6, 10]
list[index]=元素       #把index对应的值修改为值
list[index]=元素1,元素2    #默认变为元组插入该位置
list[index1,index2]=元素1,元素2  #会按位插入
list[lndex1,index2]=元素1,元素2,元素3 #会替换插入
list[lndex1,index2]=元素1      #值比位置少,不能插入,error

在前方插入/修改

第二种 
print(lst[0:5:2]) #结果:[1, 3, 5]
lst[0]=5 #结果:[5, 2, 3, 4, 5, 6, 10]
lst[0:2]=7,12,3#结果:[7, 12, 3, 4, 5, 6, 10]
lst[0]=1,2 #默认变为元组插入该位置

extend 追加内容

第三种
lst2=[50,90] #追加的内容
lst.extend(lst2)# 追加到lst的末尾 [(1, 2), 12, 3, 3, 4, 5, 6, 10, 50, 90]
print(lst.__add__(lst2)) # 追加同时,返回追加的数字 结果:[(1, 2), 12, 3, 3, 4, 5, 6, 10, 50, 90, 50, 90]

insert 追加(少用)

第四种
lst.insert(0,66) #追加到首位 原位的值全部后移 [66, 1, 2, 3, 4, 5, 6] #当插入不在尾部时,直接转为链式表,结果时再转回
线性表,不适用,少用

存在与否

第五种
print(8 in lst) #是否存在 存在为true /false 结果False
print( 1 in lst)#结果  True

根据值查找下标

第六种
print(lst.index((5))) #返回值的下标 结果 :4

根据下标将值替代成指定元素

第七种
lst[2],lst[5]=22,55 #根据下标将值替代成指定元素 结果:[1, 2, 22, 4, 5, 55]

多元素替换多个位置的值

第八种
lst[0:5]=77,88 #多个元素替换多个位置的值 结果:[77, 88, 55]  但如果只有一个替换值,则报错

删除del

第九种
del lst[0] #直接删除下标  结果: [2, 3, 4, 5, 6]
#删除 remove
lst.remove(2) #直接移除值 劣势:容易让人误会
#删除 pop
lst.pop() #不加值,默认移除最后一个,若加下标,则删除下标  [3, 4, 5]

python queue队列的最大长度_开发语言

2、循环和随机数

a、生成随机数
第一种
lst=[]
for i in range(5):
	lst.append(random.randint(0,100))
print(lst)	
#结果:[24, 26, 36, 92, 59]

第二种
b、随机数的遍历 [第一种]
for  x in lst:
    print(x)
#结果:
98
73
56
15
75

第三种
c、随机数长度遍历
for  x in range(lst.__len__()):    *****#使用下标遍历******
    print(lst[x])
#结果:
98
73
56
15
75
b、列表的排序操作
#列表的排序
lst.sort() #正序
lst.sort(reverse=True) #倒序
lst.reverse() #倒序
print(lst)
c、冒泡排序
#冒泡排序
#双重循环、外层控制比较轮数,内层循环控制每轮比较次数
for i in range(len(lst)-1): #最后一轮只剩一个元素,不需要比较,因此减-1
    for  j in range(len(lst)-i-1):#最后一个只剩一个元素,不需要比较,所以-1
        #每轮都能确定一个最大值,所以每轮减少一次比较
        if lst[j] > lst[j+1]:
            tmp=lst[j]
            lst[j]=lst[j+1]
            lst[j+1]=tmp
print(lst)
d、嵌套列表的遍历

指的是一个列表的元素又是一个列表 【遍历的区别】

案例一:
for x in school_name:
    for y in range(len(x)):
        print(x[y])
#结果:北大、清华、南开、中山、山大、苏大
案例二
for x in school_name:
    for y in x:
        print(y)

3、列表常用循环

列表常用循环
lst=['王','李','张','刘','陈','杨','黄','吴','赵','周']
lst2=lst.copy() #赋值给指定的值
print(lst2)
list.reverse(lst) #即将列表反序输出
print(lst)

4、 选择排序

lst=[]
for  x in range(10):
    lst.append(random.randint(0,100))
print(lst)

for x in range(len(lst)-1):
     tmp=lst[x]
     idx=x
     for y in range(x+1,len(lst)):
         if(tmp>lst[y]):
             tmp=lst[y]
             idx=y
     else:
         lst[idx]=lst[x]
         lst[x]=tmp
 print(lst)

注释

python queue队列的最大长度_后端_02

5、插入排序

#插入排序:刚开始一个元素,即为有序,每次加入一个元素,形成新的系列,应用
#插入元素的逻辑,使其继续有序

第一种

for  x in range(1,len(lst)):
    idx=x
    tmp=lst[x]
    while x>0:
        x-=1
        if  tmp >= lst[x]:
            lst[x+1]=tmp
            break
        else:
            lst[x+1]=lst[x]
        if x == 0:
            lst[0]=tmp
print(lst)
第二种
#插入排序
#在一个有序数组中插入值并保持顺序
arr=[10,20,52,64,68,98,259]
a=int(input('请输入一个整数:')) #如果时》259则顺序,若小于则需要从后向前
arr.append(a)
idx=len(arr)-1
while idx>=0:
    #从后向前遍历
    idx-=1
    #遇到比自己小,则该值在后方插入
    if a>arr[idx]:
        arr[idx+1]=a
        break
    #遇到比自己大的值,大的值向后移
    else:
        arr[idx+1]=arr[idx]
    #如果到最后都没插入,则插入在首位
    if  idx == 0:
        arr[0]=a
print(arr)

二、元组

元素的元素不可修改,使用()包裹元素

1、基本使用

tpl=(1,2,3,4,5)
print(type(tpl))
print(tpl[0])
print(tpl[0:3])
print(tpl[0:5:2]) #步长 显示单数
print(tpl[1:5:2]) #步长 显示双数
for x in tpl: #遍历
  print(x)

函数

print(max(tpl)) #显示最大值
print(min(tpl)) #显示最小值
print(list(tpl)) #元组转为列表【常用】

三、字典

一种存储数据的容器,每一个元素由键值对构成

1、基本操作

d={"name":"吴亦凡","mouth":5,"result":"强奸"} #json字符串 键值对
a、set用法

set

dct={'c','d','s','c'} #当大括号内没有键值对时,使用的是set(无序集合),特点是“去重”
print(dct)
print(type(dct))
b、案例

案例

d={"name":"吴亦凡","mouth":5,"result":"强奸"} #json字符串 键值对
print(d['name'])
print(d["mouth"])
#print(d['how']) 不存在时,报错
print(d.get('how'))#使用get方式,返回NONE  None
d['name']='羊总'
print(d) #{'name': '羊总', 'mouth': 5, 'result': '强奸'}
d['how']='2021-11' #当修改不存在的值时,直接再元数据上添加 {'name': '羊总', 'mouth': 5, 'result': '强奸', 'how': '2021-11'}
print(d)
c、删除

删除

d.clear()#清空  结果:{}
del d['result'] #结果:{'name': '羊总', 'mouth': 5, 'how': '2021-11'}
print(d)
d、in/not in
d.setdefault('name','sorry')
print(d)
e、遍历
第一种:for  k in keys:
    print(k)
#结果
name
age
gender
id
birthday
第二种
for  k in keys:
    print(k+':',dct[k])
结果:
name: 张三
age: 18
gender: male
id: 10
birthday: 2022-1-10
```bash

# 四、keys()用法

```bash
dct={'name':'张三','age':18,'gender':'male','id':10}
keys=dct.keys()
print(keys)  #返回列表 dict_keys(['name', 'age', 'gender', 'id'])
dct.setdefault('birthday','2022-1-10') #在获取keys之后再加,亦可以获取到新的数
print(keys) #dict_keys(['name', 'age', 'gender', 'id', 'birthday'])

五、items()用法

items=dct.items()
print(items) #结果:dict_items([('name', '张三'), ('age', 18), ('gender', 'male'), ('id', 10)])

六、values()用法

values=dct.values()
print(values) #结果: dict_values(['张三', 18, 'male', 10]) 注意 后出现的数值才会被使用
for (x,y) in items:
    print(x+':',y)