国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python如何在列表、字典中篩選數據

2020-01-04 15:36:11
字體:
來源:轉載
供稿:網友

python/303325.html">python如何在列表、字典中篩選數據

實際問題有哪些?

1.過濾掉列表[3,9,-1,10.-2......] 中負數
2.篩選出字典

{‘li_ming':90,'xiao_hong':60,'li_kang':95,'bei_men':98} 中值高于90的項

3.篩選出集合{3,9,-1,10.-2......]中能被3整除的數

問題1如何解決?

最普通方法:

#!/usr/bin/python3  def filter_l(data):  res = []  for i in data:    if i > 0:      res.append(i)  return res if __name__ == '__main__':  data = [3, 9, -1, 10, -2]  new_l = filter_l(data)  print(new_l)

如何解決列表問題?

初始化列表: 生成 -10 到 10 的隨機數列表,去除負數

1. filter方法:

#!/usr/bin/python3 from random import randint  def filter_l(data):  # 循環data列表,把值一個一個取出 交個lambda中x,如何lambda函數為True,返回x生成一個新的filter對象  return filter(lambda x: x >= 0, data) if __name__ == '__main__':  # 列表生成10個 -10 到 10 的隨機數  data = [randint(-10, 10) for _ in range(10)]  print(data)  # new_l 為可迭代對象  new_l = filter_l(data)  print(list(new_l), type(new_l))

2. 列表解析:

#!/usr/bin/python3 from random import randint  def filter_l(data):  # 循環data列表,把值一個一個取出 是否滿足if條件,滿足True返回x生成一個新列表  return [x for x in data if x >=0 ] if __name__ == '__main__':  # 列表生成10個 -10 到 10 的隨機數  data = [randint(-10, 10) for _ in range(10)]  print(data)  # new_l 為可迭代對象  new_l = filter_l(data)  print(list(new_l), type(new_l))

運行速度比較:解析 > filter > 普通

如何解決字典?

字典解析,篩選數據:

#!/usr/bin/python3 from random import randint  def filter_l(data):  print(data.items())  # 把字典轉換成dict_items,循環里面的key和value,滿足if條件返回對應的key和value值  return {k: v for k, v in data.items() if v > 90} if __name__ == '__main__':  # 字典生成式  data = {x: randint(0, 100) for x in range(10)}  print(data)  new_l = filter_l(data)  print(new_l, type(new_l))

如何解決集合問題?

#!/usr/bin/python3from random import randint  def filter_l(data):  # 迭代集合中值,滿足條件為True返回x  return {x for x in data if x % 3 == 0} if __name__ == '__main__':  # 集合生成式  data = {randint(0, 100) for x in range(10)}  print(data)  new_l = filter_l(data)  print(new_l, type(new_l))

如何邏輯整理?

無論是解析器還是普通方法,都需要for循環,if判斷,邏輯都是滿足條件返回值,過濾出滿足條件的值,無論是生成器還是解析器都滿足這個格式:“ 返回值 for循環 if判斷 “,通過lambda滿足格 式:“lambda 輸入值:條件, 格式化數據

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松溪县| 玉屏| 湘西| 宜川县| 屏山县| 曲麻莱县| 大洼县| 财经| 丹巴县| 原平市| 平昌县| 长岛县| 贵阳市| 普格县| 黄平县| 阿拉善右旗| 武清区| 曲靖市| 长沙市| 菏泽市| 抚顺县| 临江市| 宜兰市| 屏南县| 屏边| 阿拉善盟| 顺昌县| 临漳县| 长宁区| 阿克苏市| 封开县| 浑源县| 信丰县| 凌海市| 普洱| 万载县| 柏乡县| 荆门市| 无极县| 岳西县| 灵川县|