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 的隨機(jī)數(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 的隨機(jī)數(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 的隨機(jī)數(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))
運(yùn)行速度比較:解析 > 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)文章
python re正則表達(dá)式模塊(Regular Expression)
Python 的 re 模塊(Regular Expression 正則表達(dá)式)提供各種正則表達(dá)式的匹配操作,在文本解析、復(fù)雜字符串分析和信息提取時是一個非常有用的工具.2014-07-07
python學(xué)習(xí)Selenium介紹及安裝部署詳解
這篇文章主要為大家介紹了python學(xué)習(xí)中Selenium介紹以及如何安裝部署的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10
Tensorflow深度學(xué)習(xí)使用CNN分類英文文本
這篇文章主要為大家介紹了Tensorflow深度學(xué)習(xí)CNN實現(xiàn)英文文本分類示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
利用Django框架中select_related和prefetch_related函數(shù)對數(shù)據(jù)庫查詢優(yōu)化
這篇文章主要介紹了利用Python的Django框架中select_related和prefetch_related函數(shù)對數(shù)據(jù)庫查詢的優(yōu)化的一個實踐例子,展示如何在實際中利用這兩個函數(shù)減少對數(shù)據(jù)庫的查詢次數(shù),需要的朋友可以參考下2015-04-04
python機(jī)器學(xué)習(xí)之線性回歸詳解
這篇文章主要介紹了python機(jī)器學(xué)習(xí)之線性回歸詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04
Python爬蟲+tkinter界面實現(xiàn)歷史天氣查詢的思路詳解
這篇文章主要介紹了Python爬蟲+tkinter界面實現(xiàn)歷史天氣查詢的思路詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
解決pycharm下os.system執(zhí)行命令返回有中文亂碼的問題
今天小編就為大家分享一篇解決pycharm下os.system執(zhí)行命令返回有中文亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Django模板導(dǎo)入母版繼承和自定義返回Html片段過程解析
這篇文章主要介紹了Django模板導(dǎo)入母版繼承和自定義返回Html片段過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09

