最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何在列表、字典中篩選數(shù)據(jù)

 更新時間:2018年03月19日 15:13:32   作者:北門吹雪  
這篇文章主要為大家詳細(xì)介紹了python如何在列表、字典中篩選數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下

python如何在列表、字典中篩選數(shù)據(jù)?

實際問題有哪些?

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

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

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

問題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 的隨機數(shù)列表,去除負(fù)數(shù)

1. filter方法:

#!/usr/bin/python3
 
from random import randint
 
 
def filter_l(data):
 # 循環(huán)data列表,把值一個一個取出 交個lambda中x,如何lambda函數(shù)為True,返回x生成一個新的filter對象
 return filter(lambda x: x >= 0, data)
 
if __name__ == '__main__':
 # 列表生成10個 -10 到 10 的隨機數(shù)
 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):
 # 循環(huán)data列表,把值一個一個取出 是否滿足if條件,滿足True返回x生成一個新列表
 return [x for x in data if x >=0 ]
 
if __name__ == '__main__':
 # 列表生成10個 -10 到 10 的隨機數(shù)
 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 > 普通

如何解決字典?

字典解析,篩選數(shù)據(jù):

#!/usr/bin/python3
 
from random import randint
 
 
def filter_l(data):
 print(data.items())
 # 把字典轉(zhuǎn)換成dict_items,循環(huán)里面的key和value,滿足if條件返回對應(yīng)的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/python3
from 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循環(huán),if判斷,邏輯都是滿足條件返回值,過濾出滿足條件的值,無論是生成器還是解析器都滿足這個格式:“ 返回值 for循環(huán) if判斷 “,通過lambda滿足格 式:“l(fā)ambda 輸入值:條件, 格式化數(shù)據(jù)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

内黄县| 宝清县| 临海市| 拉孜县| 泽州县| 渝中区| 连平县| 鹿邑县| 上栗县| 安达市| 天镇县| 阜平县| 循化| 拉萨市| 晴隆县| 会泽县| 汉源县| 成武县| 五原县| 镇沅| 双柏县| 云阳县| 宁海县| 宜兰市| 望谟县| 大同市| 郸城县| 伽师县| 菏泽市| 庆阳市| 乳山市| 乌恰县| 瑞金市| 石林| 栖霞市| 临城县| 吉安县| 花垣县| 乌鲁木齐市| 东乡族自治县| 阜康市|