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-列表和字典相关推荐

  1. python中列表、字典和集合推导式

    1. 列表推导式         ⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表,又叫列表生成式. 1.1 简单的列表推导式 需求:创建⼀个0-10的列表. 示例代码:[while循环实现] # ...

  2. python 列表、字典转json字符串

    python 列表.字典转json字符串 代码 import json data1 = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ] data ...

  3. set集合, 深浅拷贝, join, 列表和字典在循环中删除元素的问题, fromkeys( , )

    一. set集合 空集合 a = set() set集合内的元素必须可哈希(不可变), int, str, bool, tuple set3 = {'1','alex',2,True,(1,2,[2, ...

  4. python 列表转为字典的两个小方法

    1.现在有两个列表,list1 = ['key1','key2','key3']和list2 = ['1','2','3'],把他们转为这样的字典:{'key1':'1','key2':'2','ke ...

  5. join,列表和字典用for循环的删除,集合,深浅拷贝

    1.join() 将列表转换成字符串,并且每个字符之间用另一个字符连接起来,join后面必须是可迭代的对象(字符串,列表,元组,字典,集合),数字不能迭代 例如: 1 s = ['a','b','c' ...

  6. python列表生成字典_Python 列表生成式 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  7. python 字典的值是列表_python实现求和python如何通过列表中字典的值对列表进行排序...

    一. 按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} 1. sorted_x = sorted(x.iteritems(), key=operator.item ...

  8. python字典里可以放列表吗_学习python之列表及字典

    本关学习的是两种新的数据类型:列表.字典. 在开始之前先学习一下计算机与数据直接的关系. 计算机有3种方式利用数据: 1.直接使用数据 print('我来了') 2.计算和加工数据 print (1+ ...

  9. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考

    数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...

  10. Python编程语言学习:列表与字典互转的几大方法集锦、从列表中按顺序循环抽走一个元素输出剩余元素之详细攻略

    Python编程语言学习:列表与字典互转的几大方法集锦.从列表中按顺序循环抽走一个元素输出剩余元素之详细攻略 目录 列表与字典互转的几大方法集锦 T1.基于两个列表利用zip函数来构造字典 <

最新文章

  1. usaco Healthy Holsteins
  2. 虚拟化技术原理与实现 pdf_多进程的实现原理-多道技术
  3. boost::iostreams::back_inserter用法的测试程序
  4. 关于是否在C#中加入不可空引用类型的争论
  5. Java并发编程实战_阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF
  6. 求两条轨迹间的hausdorff距离_「中考专题」瓜豆原理|第二讲 线段型路径轨迹...
  7. 解决用word修改博客后字体变大的问题
  8. sqlserver递归
  9. Kubernetes kubeadm 安装记录
  10. Pr 音频效果参考(合集)
  11. Camtasia 2019卸载-无痕强力卸载
  12. 局域网传文件_iPhone与安卓跨系统「隔空投送」,传大文件超好用
  13. ipa文件反编译_苹果ipa文件中信息的提取与加密文件的反编译
  14. Linux使用详解(进阶篇)
  15. 找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
  16. ssm报错:Invalid bound statement (not found): mapper.UserMapper.findAllUser
  17. 【1015】计算并联电阻的电阻
  18. Java实现List数据分组
  19. 史上最污的技术解读,我竟然秒懂了(下)
  20. 【分布族谱】正态分布和二项分布的关系

热门文章

  1. 案例分析第一课预习笔记
  2. 用java定义三维空间的点
  3. 天瑞地安集团:JavaScript编程小技巧让“菜鸟”编程变得更轻松!
  4. 通过邮件收发传真的方法与步骤
  5. 基于MODnet无绿幕抠图
  6. 微服务与Spring Cloud简介
  7. 能用计算机做什么作文,关于描写计算机的作文
  8. Java除法结果带小数、进一法的实现
  9. python保留n位小数,逢尾进一
  10. android 16进制/10进制/2进制转换