学习python的第十天(内置算法:列表数据类型,元祖数据类型,字典数据类型)
5.8自我总结
1.列表类型内置算法
1.必须掌握
1.按索引取值(正向取值+反向取值),即可存也可以取
#用于取其中一个值
name = ['yang','wen','yi']
##正方向取wen,也就是从左到右
pritn(name[1])
##正方向取wen,也就是从右到左
print(name[-2])
2.切片
#用于取多个值
name = ['yang','wen','yi']
#取其中的yang wen
print(name[0:2]) #和字符串类似顾头不顾尾
print(name[0:-1])
print(name[-3:-1])
print(name[:2]) #这两个是上面基础上精简的
print(name[:-1])
3.长度len
#用于长度3
name = ['yang','wen','yi']
print(len(name))
4.成员运算in和not in
#用于判断有误值在里面
name = ['yang','wen','yi']
print('wennnn' in name) #False
print('wen' in name) #True
5.追加append
#只加在最后
name = ['yang','wen','yi']
print(name.append(22)) #None
print(name) #['yang', 'wen', 'yi', 222]
6.删除del
name = ['yang','wen','yi']
#删除wen
del name[1]
7.循环
name = ['yang','wen','yi']
for i in name:
print(i)
#yang
#wen
#yi
2.了解
1.insert
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.insert(1, 'handsome') #加入后那个值的位置,加入的值
print(f"name_list: {name_list}")
2.pop
# list之pop(),pop()默认删除最后一个元素,删除一个元素
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.pop(1): {name_list.pop(1)}") #会显示删除的值
print(f"name_list: {name_list}")
3.remove
# list之remove() 删除一个元素
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.remove('nick'): {name_list.remove('nick')}") #会输出None
4.count
# list之count() #x显示对于值的个数
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.count('nick'): {name_list.count('nick')}")
5.index
查找索引
6.clear
删除列表元素
7.copy
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.copy(): {name_list.copy()}")
8.extend
# list之extend()
name_list = ['nick', 'jason', 'tank', 'sean']
name_list2 = ['nick handsome']
name_list.extend(name_list2)
print(f"name_list: {name_list}")
#name_list: ['nick', 'jason', 'tank', 'sean', 'nick handsome'] 在末尾加入
9.reverse
# list之reverse()
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.reverse()
print(f"name_list: {name_list}")
# name_list: ['sean', 'tank', 'jason', 'nick'] 翻转
10.sort
# list之sort(),使用sort列表的元素必须是同类型的
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.sort()
print(f"name_list: {name_list}")
#name_list: ['jason', 'nick', 'sean', 'tank'] #升序
name_list.sort(reverse=True)
print(f"name_list_reverse: {name_list}")
#name_list_reverse: ['tank', 'sean', 'nick', 'jason'] #降序
3,一个值或者多个值
多个值
4.有序或者无序
有序
5.可变或者不可变
可变
2.元祖类型
1.定义
(),中间加元素用,隔开
2.用法
(与列表相似,区别是可以读取不可存储改变,列表中关于存储或者改名元素的内容内置函数元祖不行)
- 索引取值
- 切片(顾头不顾尾,步长)
- 长度len
- 成员运算in和not in
- 循环
- count
- index
3.一个值或者多个值
多个值
4.有序或者无序
有序
5.可变或者不可变
不可变
3.字典数据类型内置算法
1.必须掌握
1.按key存取值:可存可取
dict = {'name':'yang','age':18}
#取 姓名
dict[name]
2.长度len
dict = {'name':'yang','age':18}
#取 长度
len(dict)
3.成员运算in和not in
判断有无key而不是值
4.删除del
dict = {'name':'yang','age':18}
#删除名字
dal dict[name]
5.键keys()、值values()、键值对items()
#演示即可
dict = {'name':'yang','age':18}
print(dict.keys())
print(dict.values())
print(dict.items())
'''
dict_keys(['name', 'age'])
dict_values(['yang', 18])
dict_items([('name', 'yang'), ('age', 18)])
'''
6.循环
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for k, v in dic.items(): # items可以换成keys()、values()
print(k, v)
#a 1
#b 2
#c 3
#d 4
2.慢慢掌握
1.get
和key取值有点类似区别就是取不到不会报错,但是不能用get来更换值
2.update
# dic之update()
dic1 = {'a': 1, 'b': 2}
dic2 = {'c': 3}#如果dic2与dic1中key有相同的,则不会增加新的key更新值,如果没有相同的则会添加key还有值
dic1.update(dic2)
print(f"dic1: {dic1}")
#dic1: {'a': 1, 'b': 2, 'c': 3}
3.fromkeys
# dic之fromkeys()
dic = dict.fromkeys(['name', 'age', 'sex'], None)
print(f"dic: {dic}")
#给目录赋予相同的值
4.setdefault
# dic之setdefault(),有指定key不会改变值;无指定key则改变值
dic = {'a': 1, 'b': 2}
print(f"dic.setdefault('a'): {dic.setdefault('a',3)}")
print(f"dic: {dic}")
print(f"dic.setdefault('c'): {dic.setdefault('c',3)}")
print(f"dic: {dic}")
#dic.setdefault('a'): 1
#dic: {'a': 1, 'b': 2}
#dic.setdefault('c'): 3
#dic: {'a': 1, 'b': 2, 'c': 3}
4.需要记的单词
- get 获得
- update 更新
- fromkeys 生成一个字典,修改和添加
- setdefault 只添加不修改
- count 查找个数
- index 查找索引
- insert 具体某个位置插入
- pop 删除 能显示删除的值
- remove 删除 不能显示删除的值
- clear 清除元素
- copy 复制
- extend 延伸
- reverse 颠倒
- sort 排序
5.今日题目
有列表
data=['alex',49,[1900,3,18]]
,分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量:data=['alex',49,[1900,3,18]]
name,age,data_1 = data
year,month,day = data_1
print(name,age,year,month,day)
#####################
data=['alex',49,[1900,3,18]]
a,b,c = data
d,e,f = c
data = [a,b,d,e,f]
keys = ['姓名','年龄','年','月','日']
dic= {}
time = 0
while time < len(data):
dic.setdefault(keys[time],data[time])
time += 1
print(dic)
用列表模拟队列(最先进入列表的元素会先出来):
# 答案,通过该答案模仿写出第3题
lis = []
print(f"进队列前lis: {lis}")
# 进队列
for i in range(1, 6):
lis.append(i)
print(i)
print(f"结束进入队列lis: {lis}")
# 出队列
for i in range(len(lis)):
print(lis.pop(0))
print(f"出队列后lis: {lis}")
用列表模拟堆栈(最后进入列表的元素会先出来):
new_lis = []
for i in range(1,6):
new_lis.append(i)
new_lis.reverse()
print(new_lis)
有如下列表,请按照年龄排序(涉及到匿名函数):
lis=[
{'name':'alex','age':84},
{'name':'oldboy','age':73},
{'name':'egon','age':18},
]
# 通过姓名排序参考(涉及匿名函数):
lis.sort(key=lambda item:item['name'])
lis.sort(key=lambda item:item['age'])
# 冒泡函数
lis = [
{'name' : 'yang','age' : 6 },
{'name' : 'wen','age' : 3 },
{'name' : 'yi','age' : 1 }
]
for i in range(len(lis)):
for j in range(i+1,len(lis)):
if lis[i]['age'] >lis[j]['age']:
lis[i],lis[j] = lis[j],lis[i]
print(lis)
有如下值集合
[11,22,33,44,55,66,77,88,99,90...]
,将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中,结果为
{'k1': 大于66的所有值, 'k2': 小于66的所有值}
:k1_list = []
k2_list = []
new_dict = {'k1':k1_list,"k2":k2_list}
a = [11,22,33,44,55,66,77,88,99,90]
for i in a:
if i >=66:
k1_list.append(i)
elif i < 66:
k2_list.append(i)
print(new_dict)
统计
s='hello jason tank tank jason sean say hello dsb dsb sb'
中每个单词的个数,结果为`{'hello': 2, 'alex': 0, 'say': 1, 'sb': 1}
s='hello jason tank tank jason sean say hello dsb dsb sb'
hello_num = s.count('hello')
alex_num = s.count('alex')
sb_num = s.split().count('sb')
say_num = s.count('say')
new_dic = {'hello':hello_num,'alex':alex_num,'say':say_num,'sb':sb_num}
print(new_dic)
#{'hello': 2, 'alex': 0, 'say': 1, 'sb': 1}
学习python的第十天(内置算法:列表数据类型,元祖数据类型,字典数据类型)的更多相关文章
- Python eval() 的使用:将字符串转换为列表,元祖,字典
eval() 函数用来执行一个字符串表达式,并返回表达式的值. 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expres ...
- Python基础-列表、元祖、字典、字符串
列表和分组 序列概览: 数据结构是通过某种方式组织在一起的数据元素的集合.这些元素可以是数字.字符,甚至可以是其他数据结构. 在python中,最基本的数据结构是序列(sequence). 序列中的每 ...
- python学习-day12:列表、元祖、字典介绍和内置
list:列表 >>>----可以被修改.修改成元素,元素可以使单独的数字,也可以是:新的list. 通过:链表..每个元素存储的时候,同时会指向下一个元素. 二.list编辑修改方 ...
- 【Python基础学习五】列表,元祖,字典
1.列表(list) 列表是Python的一种内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素,就像动态数组一样.获取list中的元素用角标获取,角标可以使用正角标,也可以使用负角 ...
- Python基础(3)_可变对象与不可变对象、列表、元祖和字典
可变对象与不可变对象 实例被创建后,身份和类型是不可变的, 如果值是不可以被修改的,则是不可变对象 如果值是可以被修改的,则是可变对象 #在id不动,type也不动,value被修改了,则称为可变 # ...
- python列表、元祖、字典
python列表 ['a','1','vs2'] 里面的值可以改 python元祖 ('a','1','css','sdf12') 里面的值不能改 python字典 {'s ...
- Python——列表、元祖、字典 操作方法
一.编码方式占位 1.ASCII码:字母.数字.特殊字符,1个字节占8位 2.Unicode:字母 2字节占16位 / 中文 4字节 占32位 3.UTF8:字母 1字节占8位 / 欧洲 2字节占 ...
- python,列表,元祖,字典
list 列表 li = [1,",[3,4]] 1.用中括号括起来 2.用,来分割每一个元素 3.列表中的元素可以是,数字,字符串,列表,布尔值 4.“集合”,内部可以放置任何东西 li ...
- python基础--列表、元祖、字典、集合
列表(List) 1.列表特点 列表是可变的!! list 是一种有序的序列,可以添加.删除其中的元素,并且可以通过下标(索引)访问 数据 2.简单的常用操作 A.通过下表访问元素 print(lis ...
- Python——列表、元祖、字典、集合的基本操作
列表 1. 列表——增 (1)append li = ['xcsd', 'cdc', [1, 5, 2], 'eht', '辛辰'] li.append('nihao') print(li) #['x ...
随机推荐
- swiper 解决动态加载数据滑动失效的问题
两种解决方法 第一种解决办法: success:function(result){ var resultdata =eval("("+result+")"); ...
- JAVA常用知识总结(七)——Spring
如果一个接口有2个不同的实现, 如何Autowire某一个指定的实现? 1.通过增加@Qualifier(实现类的名字): @Autowired @Qualifier("GirlStuden ...
- 使用nvmw解决windows下多版本node共存的问题
不支持4.x的nodejs,用nodist吧 不支持4.x的nodejs,用nodist吧 不支持4.x的nodejs,用nodist吧 ===========不要再看的分割线============ ...
- Masonry UIScrollView autolayout 的一个奇特的问题
事情是这样的.... 我一个工程里 一直使用的 masonry 做autolayout,有个gesturerReconizer的bug,找了很久,发现很奇怪一个现象: 我的某个view 是这样的 |- ...
- ios,弹窗遮罩滚动穿透解决方案
- 使用position属性的心得
1.使用position中的absolute要与relative配套使用,如果不使用relative时默认absolute会用整个视窗作为参照物:如果relative放在absolute的父级标签上, ...
- uvm_driver——老司机带带我
文件:src/comps/uvm_driver.svh类: uvm_driver uvm_driver继承(C++中叫继承)自uvm_component,其中定义了两个Ports:seq_item_p ...
- 【Web应用-网络连接】Azure Web 应用对外连接数上限分析
在 Azure Web 应用中发起大量外部连接操作时,需要考虑已经建立了多少外部连接.当超过最大对外连接数时,Azure Web 应用将会产生套接字异常.Azure Web 应用对于各个级别的实例,对 ...
- LINUX提高openfire并发数(网上收集)
谷歌博客地址:http://tsaiquinn.blogspot.com/2014/10/linuxopenfire.html 影响连接数的元素包含三种:1)Linux的系统参数2)进程自身可以创建的 ...
- JS中的delete操作符
首先,delete删除成功返回true,失败返回false. js代码: function wxCount ($element) { this.init($element); } wxCount.pr ...