day007-列表和字典
1,列表推导式
① 序列变换成列表
str1 = 'abc'
list1 = [x for x in str1]
print(list1) # ['a', 'b', 'c']nums = [10, 245, 89, 56]
list2 = [x*100 for x in nums]
print(list2) # [1000, 24500, 8900, 5600]
② 筛选(提取出有效的或者删除无效)
scores = [89, 8, 100, 98, 67, 34, 59, 45, 23, 78, 92]
new_scores = [x for x in scores if x >= 60]
print(new_scores)
③ 不统一的变换
list4 = [19, 'abc', 98, 'mnb', 13, 53]
new_list4 = [x*10 if type(x) == int else x for x in list4]
# 用到if_else和for_in
print(new_list4) # ->[190, 'abc', 980, 'mnb', 130, 530]
2, 相关函数
① max和min
max(序列) - 返回序列中元素的最大值
min(序列) - 返回序列中元素的最小值
nums = [90, 89, 67, 29, 789, 2]
print(max(nums))
print(min(nums))
② sum
sum(序列) - 求序列中所有元素的和(序列中的元素只能是数字)
print(sum(range(101)))
③ sorted
A sorted(序列) - 将序列中的元素从小到大排序(升序),以列表的形式返回
B sorted(序列, reverse=True) - 将序列中的元素从大到小排序(降序),以列表的形式返回
nums = [90, 89, 67, 29, 789, 2]
new_nums = sorted(nums)
print(new_nums) # [2, 29, 67, 89, 90, 789]
new_nums = sorted(nums, reverse=True)
print(new_nums) # [789, 90, 89, 67, 29, 2]
④ list
list(序列) - 将其他序列转换成列表(任何序列都可以转换成列表)
list1 = list('abc')
print(list1) # ['a', 'b', 'c']list2 = list(range(10, 15))
print(list2) # [10, 11, 12, 13, 14]
3,相关方法
① 列表.clear() - 删除列表中所有的元素
song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song.clear()
print(song) # []
② 列表.copy() - 返回一个和原列表一样(长得一样)的新的列表,相当于列表[:]、列表+[]、列表*1。
song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song2 = song.copy()
print(song2) # ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
③ 列表.count(元素) - 返回元素在列表中出现的次数
nums = [34, 23, 23, 4, 5, 67, 8, 12, 4, 23]
print(nums.count(23)) # 3
④ 列表.extend(序列) - 将序列中的元素全部添加到列表中
song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song.extend(['counting star', '加州旅馆'])
print(song) # ['关山酒', '将故事写成我们', '身骑白马', '告白气球', 'counting star', '加州旅馆']
⑤ 列表.index(元素) - 返回元素在列表中的下标(这儿的下标是0开始的下标值),如果元素有多个,只返回最前的元素的下标。如果元素不存在,报错!
print(song.index('关山酒')) # 0
print(song.index('身骑白马')) # 2
⑥ 列表.reverse() - 列表逆序
song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song.reverse()
print(song)
⑦ 列表.sort() 列表.sort(reverse=True)
nums = [90, 89, 67, 29, 789, 2]
nums.sort()
print(nums) # [2, 29, 67, 89, 90, 789]nums = [90, 89, 67, 29, 789, 2]
new_nums = sorted(nums)
print(nums) # [90, 89, 67, 29, 789, 2]
print(new_nums) # [2, 29, 67, 89, 90, 789]
4,字典
① 字典是容器型数据类型,将{}作为容器的标志,里面多个元素(元素都是键值对)用逗号隔开:{键1:值1, 键2:值2, 键3:值3,…}字典可变(支持增删改);字典是无序(不支持下标操作)字典的元素 - 必须是键值对。
键 - 必须是不可变的数据(一般使用字符串)、唯一的
值 - 任何类型的数据都可以,可以重复
② 查 - 获取字典的值
A 获取单个值
a. 字典[key] - 获取字典中指定key对应的值,如果key不存在会报错
b. 字典.get(key) - 获取字典中指定key对应的值,如果key不存在不报错并且返回None
c. 字典.get(key, 默认值)
B 遍历
for-in 遍历字典的是,变量取到的是字典的键
film = {'name': '肖生克的救赎', 'director': '弗兰克·德拉邦特', 'time': '1994'}
print(film['name']) # 肖生克的救赎
print(film['time']) # 1994
# print(film['age']) # 报错:KeyError: 'age'film = {'name': '肖生克的救赎', 'director': '弗兰克·德拉邦特', 'time': '1994'}
for x in film:print(x, film[x])
C 其他
dict1 = {x: x * 2 for x in range(6)} # 用字典生成式生成一个字典
print(dict1) # {0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10}
print(dict1.keys()) # 获取字典得所有键
print(dict1.values()) # 获取字典得所有值
print(dict1.items()) # 获取字典中所有得键值对
③ 增、改
字典[key] = 值 - 当key存在的时候就是修改;当key不存在的时候就是增加。
computer = {'price': 5432, 'brand': '联想'}
print(computer)computer['color'] = '白色'
print(computer) # {'price': 5432, 'brand': '联想', 'color': '白色'}
④ 删
A del 字典[key] - 删除字典中指定key对应的键值对。(key不存在报错)
B 字典.pop(key) - 取出字典中指定key对应的值
computer = {'price': 3000, 'brand': '联想', 'color': '白色'}
del computer['price']
print(computer) # {'brand': '联想', 'color': '白色'}computer = {'price': 3000, 'brand': '联想', 'color': '白色'}
price = computer.pop('price')
print(computer, price) # {'brand': '联想', 'color': '白色'} 3000
5,字典的相关操作和方法
① in 和 not in 操作
# 字典的in和not in 判断的是某个key是否存在
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(10 in dict1) # False
print('a' in dict1) # True
② max、min、sum、sorted - 这些操作全部针对字典的key
③ dict
dict(序列) - 将序列转换成字典。
序列的要求:
a. 序列中的每个元素都是序列
b. 小序列有且只有两个元素
c. 小序列的第一个元素不可变
seq = ['ab', '12', 'c1']
print(dict(seq)) # {'a': 'b', '1': '2', 'c': '1'}seq = [range(2), ['name', '小明']]
print(dict(seq)) # {0: 1, 'name': '小明'}# 字典转列表,是将字典所有的键作为列表元素 (所有序列都可以转换成列表)
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(list(dict1)) # ['a', 'b', 'c']
day007-列表和字典相关推荐
- python中列表、字典和集合推导式
1. 列表推导式 ⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表,又叫列表生成式. 1.1 简单的列表推导式 需求:创建⼀个0-10的列表. 示例代码:[while循环实现] # ...
- python 列表、字典转json字符串
python 列表.字典转json字符串 代码 import json data1 = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ] data ...
- set集合, 深浅拷贝, join, 列表和字典在循环中删除元素的问题, fromkeys( , )
一. set集合 空集合 a = set() set集合内的元素必须可哈希(不可变), int, str, bool, tuple set3 = {'1','alex',2,True,(1,2,[2, ...
- python 列表转为字典的两个小方法
1.现在有两个列表,list1 = ['key1','key2','key3']和list2 = ['1','2','3'],把他们转为这样的字典:{'key1':'1','key2':'2','ke ...
- join,列表和字典用for循环的删除,集合,深浅拷贝
1.join() 将列表转换成字符串,并且每个字符之间用另一个字符连接起来,join后面必须是可迭代的对象(字符串,列表,元组,字典,集合),数字不能迭代 例如: 1 s = ['a','b','c' ...
- python列表生成字典_Python 列表生成式 字典生成式
Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...
- python 字典的值是列表_python实现求和python如何通过列表中字典的值对列表进行排序...
一. 按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} 1. sorted_x = sorted(x.iteritems(), key=operator.item ...
- python字典里可以放列表吗_学习python之列表及字典
本关学习的是两种新的数据类型:列表.字典. 在开始之前先学习一下计算机与数据直接的关系. 计算机有3种方式利用数据: 1.直接使用数据 print('我来了') 2.计算和加工数据 print (1+ ...
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...
- Python编程语言学习:列表与字典互转的几大方法集锦、从列表中按顺序循环抽走一个元素输出剩余元素之详细攻略
Python编程语言学习:列表与字典互转的几大方法集锦.从列表中按顺序循环抽走一个元素输出剩余元素之详细攻略 目录 列表与字典互转的几大方法集锦 T1.基于两个列表利用zip函数来构造字典 <
最新文章
- usaco Healthy Holsteins
- 虚拟化技术原理与实现 pdf_多进程的实现原理-多道技术
- boost::iostreams::back_inserter用法的测试程序
- 关于是否在C#中加入不可空引用类型的争论
- Java并发编程实战_阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF
- 求两条轨迹间的hausdorff距离_「中考专题」瓜豆原理|第二讲 线段型路径轨迹...
- 解决用word修改博客后字体变大的问题
- sqlserver递归
- Kubernetes kubeadm 安装记录
- Pr 音频效果参考(合集)
- Camtasia 2019卸载-无痕强力卸载
- 局域网传文件_iPhone与安卓跨系统「隔空投送」,传大文件超好用
- ipa文件反编译_苹果ipa文件中信息的提取与加密文件的反编译
- Linux使用详解(进阶篇)
- 找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
- ssm报错:Invalid bound statement (not found): mapper.UserMapper.findAllUser
- 【1015】计算并联电阻的电阻
- Java实现List数据分组
- 史上最污的技术解读,我竟然秒懂了(下)
- 【分布族谱】正态分布和二项分布的关系