Python—列表元组和字典

列表

元组

字典

列表:

列表是Python中的一种数据结构,他可以存储不同类型的数据。尽量存储同一种类型

列表索引是从0开始的,我们可以通过索引来访问列表的值。

列表的赋值

案例

A=[1,'xiaoWang','a',[2,'b']]
a、lst = [1,2,3,4,5,6]#list使用[] , {}字典,()tuple
list.append(元素) 在列表尾部追加元素

第一种

lst.append(10)#再尾部追加
#结果:[1, 2, 3, 4, 5, 6, 10]

在前方插入/修改

第二种

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]

  

循环随机数列表遍历及用长度遍历

第一种
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

  

列表的排序操作

#列表的排序
lst.sort() #正序
lst.sort(reverse=True) #倒序
lst.reverse() #倒序
print(lst)

冒泡排序

#冒泡排序
#双重循环、外层控制比较轮数,内层循环控制每轮比较次数
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)

选择排序

#演示选择排序 :从前向后遍历,找到一个最小值与该位置交换
import random
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]#最小值保存在tmp中
idx=y#下标保存在idx中
else:
lst[idx]=lst[x] #根据最小值下标,把初始值放进去
lst[x]=tmp#把最小值放入初始值位置中
print(lst)

  

插入排序

#插入排序1:
arr=[10,20,30,50,80]
a=int(input("请输入一个整数:"))
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)

  

插入排序

#插入排序2:
import random lst=[]
for x in range(10):
lst.append(random.randint(0,100))
print(lst) 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)

  

嵌套列表的遍历

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

案例一:

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)

  

列表常用循环

列表常用循环
lst=["zhao","qian","sun","li","zhou","wu","zhen","wang"]
lst2=lst.copy() #赋值给指定的值
print(lst2) list.reverse(lst) #即将列表反序输出
print(lst)

元组

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

基本使用

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)) #元组转为列表【常用】

  

字典

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

set用法

set

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

  

案例

d={"name":"大黄","age":"5","strain":"拉布拉多"}   #json字符串
print(d["name"])
print(d.get("我草"))
d["name"]="羊总"
d["lalala"]="1996.888"
print(d)

d.setdefault("吴亦凡","侮辱未成年") #存在不动,不存在给你加进去
print(d)

删除

d.clear()#清空 结果:{}
del d['result'] #结果:{'name': '羊总', 'mouth': 5, 'how': '2021-11'}
print(d)

  

keys用法

#演示keys()、values()、items()
dct={"name":"zhangsan","age":"18","gender":"male","id":"10"}
keys=dct.keys()
print(keys)
dct.setdefault("birthday","1999-99")
print(keys)
for k in keys:
print(k+":",dct[k])

  

items()用法

dct={"name":"zhangsan","age":"18","gender":"male","id":"10"}
#items
itms=dct.items()
print(itms)
for (x,y) in itms:
print(x+":",y)

values()用法

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

  

最新文章

  1. python 虚拟环境
  2. 【leetcode】Search for a Range
  3. linux密码的更改
  4. win32自绘按钮,使用GDI+(一)
  5. 使用 Windows10 自定义交互消息通知
  6. [POJ] #1003# Hangover : 浮点数运算
  7. 在IIS上发布项目后浏览时报的错:Unable to make the session state request to the session state server
  8. nullptr和NULL
  9. oracle行转列、列转行
  10. Objective-c Category使用
  11. gitHub搭建
  12. kubernetes入门(07)kubernetes的核心概念(4)
  13. 正则表达式在Java中的使用
  14. Fix: Unable to terminate process ‘Access is denied’ 杀进程,关服务
  15. 已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容
  16. eclipse中运行项目出现空白错误提示解决办法
  17. javascript对象的属性,方法,prototype作用范围分析.
  18. FFmpeg X264的preset和tune
  19. 【代码笔记】iOS-获取现在的日历时间
  20. Codeforces Round #297 (Div. 2)B. Pasha and String 前缀和

热门文章

  1. 抛砖系列之-MySQL中的数据类型JSON
  2. JZOJ5966. [NOIP2018TGD2T3] 保卫王国 (动态DP做法)
  3. MongoDB应用场景及选型
  4. 分享一款开源堡垒机-jumpserver
  5. SQL高级优化(五)之执行计划
  6. day 9 scanf输入和gets输入的区别
  7. 02-JS中的数据类型及类型转换
  8. 微服务架构 | 3.4 HashiCorp Consul 注册中心
  9. [GKCTF2020]EZ三剑客-EzNode&[GYCTF2020]Ez_Express
  10. 【reverse】逆向5 标志寄存器