婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 一些讓Python代碼簡潔的實用技巧總結

一些讓Python代碼簡潔的實用技巧總結

熱門標簽:ai電銷機器人源碼 宿遷星美防封電銷卡 百度地圖標注沒有了 長沙高頻外呼系統原理是什么 地圖標注審核表 ai電話機器人哪里好 外呼并發線路 西藏房產智能外呼系統要多少錢 湛江智能外呼系統廠家

前言

眾所周知,編寫Python代碼在開始時十分容易,但隨著你在工具包中添加更多的庫,你的腳本可能會有不必要的代碼行,變得冗長而混亂。可能短期內能夠應付工作,但長期來看,麻煩不小。

在這篇文章中,我將與你分享7個技巧,使你在使用Python進行數據科學時更加簡潔。這涵蓋了我們日常所做的事情,例如修改Pandas數據框中的值,連接字符串,讀取文件等操作!

1. 使用Lambda來修改Pandas數據框中的值

假設我們有以下df數據框:

data = [[1,2,3], [4,5,6], [7,8,9]]
df = pd.DataFrame(data, columns=[0,1,2])
IN[1]: print (df)
OUT[1]:    0  1  2
        0  1  2  3
        1  4  5  6
        2  7  8  9

現在由于某種原因,你需要在第0列的數字上添加01的值。一個常見的方法是定義一個函數來完成這個任務,然后用 apply 函數來修改一列的值。

def add_numbers(x):
    return f'{x}01'
df[0] = df[0].apply(add_numbers)
IN[1]: print (df)
OUT[1]:     0   1   2
        0  101  2   3
        1  401  5   6
        2  701  8   9

這并不復雜,但是在數據框中對每一個改變創建一個函數是不切實際的。這時lambda就派上了用場。

lambda函數類似于普通的Python函數,但它可以不使用名稱來定義,這使得它成為一個漂亮的單行代碼。之前使用的代碼可以用以下方式來減少。

df[0] = df[0].apply(lambda x:f'{x}01')

當你不知道是否可以訪問一個系列的屬性來修改數據時,Lambda變得非常有用。

例如,列0包含字母,我們想把它們大寫。

# 如果你知道.str的存在,你可以這樣做
df[0] = df[0].str.title()
# 如果你不知道.str,你仍然可以用lambda大寫
df[0] = df[0].apply(lambda x: x.title())

2. 使用f-string來連接字符串

字符串連接是Python中非常常見的操作,它可以用不同的方法來完成。最常見的方法是使用+運算符;然而,這個運算符的一個問題是我們不能在字符串之間添加任何分隔符。

當然,如果你想把 "Hello "和 "World "連接起來,一個典型的變通方法是添加一個空白分隔符(" ")。

print("Hello" + " " + "World")

這就完成了工作,但為了寫出更可讀的代碼,我們可以用一個f-string來代替它。

IN[2]: print(f'{Hello} {World}')
OUT[2]: "Hello World"

在一個基本的例子中,這似乎是不必要的,但是當涉及到連接多個值時(正如你將在提示#3中看到的),f-string將使你免于書寫多次+ " " +。我不知道過去有多少次不得不寫+運算符,但現在不會了!

其他連接字符串的方法是使用join()方法或format()函數,然而f-string在字符串連接方面做得更好。

3. 用Zip()函數對多個列表進行迭代

你是否曾經想在 Python 中循環遍歷一個以上的列表?當你有兩個列表時,你可以用 enumerate 來實現。

teams = ['Barcelona', 'Bayern Munich', 'Chelsea']
leagues = ['La Liga', 'Bundesliga', 'Premiere League']
for i, team in enumerate(teams):
    league = leagues[i]
    print(f'{team} plays in {league}')

然而,當你有兩個或更多的列表時,這變得不切實際。一個更好的方法是使用zip()函數。zip()函數接收迭代數據,將它們聚集在一個元組中,并返回之。

讓我們再增加一個列表,看看zip()的威力!

teams = ['Barcelona', 'Bayern Munich', 'Chelsea']
leagues = ['La Liga', 'Bundesliga', 'Premiere League']
countries = ['Spain', 'Germany', 'UK']
for team, league, country in zip(teams, leagues, countries):
    print(f'{team} plays in {league}. Country: {country}')

上述代碼的輸出結果為:

Barcelona plays in La Liga. Country: Spain
Bayern Munich plays in Bundesliga. Country: Germany
Chelsea plays in Premiere League. Country: UK

此處你注意到我們在這個例子中使用了f-string嗎?代碼變得更有可讀性,不是嗎?

4. 使用列表理解法

清洗和處理數據的一個常見步驟是修改現有的列表。比如,我們有以下需要大寫的列表:

words = ['california', 'florida', 'texas']

將words列表的每個元素大寫的典型方法是創建一個新的大寫列表,執行一次 for 循環,使用.title(),然后將每個修改的值附加到新的列表中。

capitalized = []
for word in words:
    capitalized.append(word.title())

然而,Pythonic的方法是使用列表理解來做到這一點。列表理解有一種優雅的方法來制作列表。

你可以用一行代碼重寫上面的for循環:

capitalized = [word.title() for word in words]

由此我們可以跳過第一個例子中的一些步驟,結果是一樣的。

5. 對文件對象使用with語句

當在一個項目上工作時,我們經常會對文件進行讀寫操作。最常見的方法是使用open()函數打開一個文件,它會創建一個我們可以操作的文件對象,然后作為一個習慣的做法,我們應該使用close()關閉該文件對象。

f = open('dataset.txt', 'w')
f.write('new_data')
f.close()

這很容易記住,但有時寫了幾個小時的代碼,我們可能會忘記用f.close()關閉f文件。這時,with語句就派上了用場。with語句將自動關閉文件對象f,形式如下:

with open('dataset.txt', 'w') as f:
    f.write('new_data')

有了這個,我們可以保持代碼的簡短。

你不需要用它來讀取CSV文件,因為你可以用pandas的 pd.read_csv()輕松地讀取,但在讀取其他類型的文件時,這仍然很有用。例如,從pickle文件中讀取數據時經常使用它。

import pickle 
# 從pickle文件中讀取數據集
with open(‘test', ‘rb') as input:
    data = pickle.load(input)

6. 停止使用方括號來獲取字典項, 利用.get()代替

比如,有以下一個字典:

person = {'name': 'John', 'age': 20}

我們可以通過person[name]和person[age]分別獲得姓名和年齡。但是,由于某種原因,我們想獲得一個不存在的鍵,如 "工資",運行person[salary]會引發一個`KeyError'。

這時,get()方法就有用了。如果鍵在字典中,get()方法返回指定鍵的值,但是如果沒有找到鍵,Python 將返回None。得益于此,你的代碼不會中斷。

person = {'name': 'John', 'age': 20}
print('Name: ', person.get('name'))
print('Age: ', person.get('age'))
print('Salary: ', person.get('salary'))

輸出結果如下:

Name:  John
Age:  20
Salary:  None

7. 多重賦值

你是否曾想減少用于創建多個變量、列表或字典的代碼行數?那么,你可以用多重賦值輕松做到這一點。

# 原始操作
a = 1
b = 2
c = 3
# 替代操作
a, b, c = 1, 2, 3
# 代替在不同行中創建多個列表
data_1 = []
data_2 = []
data_3 = []
data_4 = []
# 可以在一行中創建它們的多重賦值
data_1, data_2, data_3, data_4 = [], [], [], []
# 或者使用列表理解法
data_1, data_2, data_3, data_4 = [[] for i in range(4)]

原文鏈接:

https://towardsdatascience.com/7-tips-to-level-up-your-python-code-for-data-science-4a64dbccd86d

總結

到此這篇關于讓Python代碼簡潔的實用技巧的文章就介紹到這了,更多相關Python代碼簡潔技巧內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python使用py2neo操作圖數據庫neo4j的方法詳解
  • python實現日歷效果
  • python利用文件讀寫編寫一個博客
  • Python爬蟲技術
  • 詳解python關于多級包之間的引用問題
  • Python學習開發之圖形用戶界面詳解
  • Python使用Py2neo創建Neo4j的節點、關系及路徑

標簽:漯河 寧夏 盤錦 大同 普洱 海南 南平 林芝

巨人網絡通訊聲明:本文標題《一些讓Python代碼簡潔的實用技巧總結》,本文關鍵詞  一些,讓,Python,代碼,簡潔,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一些讓Python代碼簡潔的實用技巧總結》相關的同類信息!
  • 本頁收集關于一些讓Python代碼簡潔的實用技巧總結的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    青青草原综合久久大伊人精品优势| 亚洲天堂网中文字| 欧美一级日韩免费不卡| 亚洲精品国产一区二区精华液 | 一区二区三区资源| 国产伦精品一区二区三区视频青涩| 色综合色综合色综合| 日韩精品一区二区三区视频在线观看 | 欧美日韩精品专区| 亚洲一区二区精品视频| 91福利国产精品| 日本成人在线电影网| 亚洲精品在线一区二区| av欧美精品.com| 亚洲高清免费视频| 久久久国产精品午夜一区ai换脸| av午夜精品一区二区三区| 亚洲成av人片在线| 久久久久久久久久久久电影| 99热这里都是精品| 亚洲图片欧美综合| 91精品国产欧美日韩| 国内精品视频一区二区三区八戒 | 欧美mv和日韩mv的网站| 视频一区在线视频| 欧美日韩国产综合一区二区三区| 亚洲另类在线一区| 国产精一区二区三区| 欧美日韩性生活| 国产精品沙发午睡系列990531| 爽好久久久欧美精品| 一本色道a无线码一区v| 中文字幕第一页久久| 国产精品亚洲成人| 日韩写真欧美这视频| 午夜不卡av免费| 欧美精品国产精品| 亚洲超碰97人人做人人爱| 成人综合婷婷国产精品久久蜜臀| 久久伊人中文字幕| 欧美色综合天天久久综合精品| 国产精品视频免费看| 青青国产91久久久久久| 亚洲欧美日韩系列| 国产精品亚洲第一区在线暖暖韩国| 欧美国产精品v| 99热99精品| 国产精品久久久久久久久快鸭| 国产精品亚洲人在线观看| 欧美日韩在线直播| 视频一区在线视频| 日本美女一区二区三区视频| 日本高清不卡视频| 91精品国产黑色紧身裤美女| 国产亚洲精品免费| 69av一区二区三区| 久久99精品国产麻豆不卡| 亚洲精品一区二区三区四区高清 | 日韩欧美国产系列| 另类的小说在线视频另类成人小视频在线 | 成人av在线影院| 国产日韩欧美精品电影三级在线| 精品一区二区三区影院在线午夜 | 亚洲欧美日韩久久| 欧美日韩亚洲综合一区二区三区| 国产精品国产三级国产三级人妇| 99riav久久精品riav| 亚洲日穴在线视频| 欧美日免费三级在线| 日韩精品视频网| 国产日韩成人精品| 91丨porny丨中文| 亚洲综合一区二区三区| 91精品国产综合久久婷婷香蕉 | 国产免费成人在线视频| 国产91富婆露脸刺激对白| 国产精品国产三级国产普通话蜜臀 | 欧美日韩一区不卡| 久久久精品免费免费| 99久久久久久| 亚洲综合网站在线观看| 久久综合九色综合久久久精品综合| 理论电影国产精品| 亚洲欧美色综合| 欧美大片顶级少妇| 欧美在线一二三| 午夜精品免费在线观看| 久久精品日产第一区二区三区高清版 | 99精品国产热久久91蜜凸| 亚洲精品一区二区三区福利| 亚洲婷婷国产精品电影人久久| 奇米精品一区二区三区四区| 中文一区二区完整视频在线观看| 欧美性xxxxxxxx| 精品一区二区在线看| 夜夜爽夜夜爽精品视频| 久久久精品人体av艺术| 欧美另类高清zo欧美| 国产成人在线视频网址| 首页亚洲欧美制服丝腿| 国产午夜精品一区二区三区嫩草 | 久久午夜色播影院免费高清| 欧美丝袜第三区| 99国内精品久久| 国产91丝袜在线播放九色| 日韩和欧美一区二区| 欧美伊人精品成人久久综合97| 性做久久久久久久免费看| 日韩av不卡在线观看| 欧美本精品男人aⅴ天堂| 欧美在线观看你懂的| 国产福利一区二区三区视频| 韩国v欧美v日本v亚洲v| 久久99久国产精品黄毛片色诱| 午夜精品久久久久久久久| 亚洲成人你懂的| 亚洲第一搞黄网站| 日日夜夜精品视频免费| 五月激情六月综合| 日韩vs国产vs欧美| 亚洲风情在线资源站| 成人欧美一区二区三区1314| 国产精品高潮呻吟| 亚洲一区二三区| 免费三级欧美电影| 久久不见久久见免费视频1| 国产精品一二一区| 91在线免费视频观看| 欧美系列在线观看| 99国内精品久久| 99精品黄色片免费大全| 91麻豆自制传媒国产之光| 在线视频国内一区二区| 成人一区二区三区中文字幕| 播五月开心婷婷综合| 成人国产精品免费观看视频| 亚洲影院久久精品| 久久国产精品无码网站| 国产激情一区二区三区桃花岛亚洲| 成人免费视频视频在线观看免费 | 午夜精品免费在线观看| 蜜乳av一区二区| 成人小视频在线观看| 91福利社在线观看| 色综合咪咪久久| 日本久久一区二区| 欧美精品亚洲二区| 国产精品免费aⅴ片在线观看| 国产精品成人网| 日韩精品一区二区三区视频播放| 中文字幕av一区二区三区高 | 日本一区二区高清| 91精品国产一区二区三区蜜臀| 久久免费电影网| 亚洲综合久久久| 国产成人av电影在线| 在线看不卡av| 精品福利av导航| 亚洲综合色噜噜狠狠| 丰满放荡岳乱妇91ww| 亚洲成av人片在线观看| 国产一区二三区| 中文字幕中文在线不卡住| 日韩电影在线看| 国产精品一区二区三区99| 日韩一区有码在线| 精品一区二区三区在线观看 | 亚洲成a人片综合在线| 大陆成人av片| 久久综合一区二区| 亚洲成人综合在线| 91免费看`日韩一区二区| 欧美电视剧在线看免费| 亚洲精品视频在线观看免费 | 欧美图片一区二区三区| 亚洲欧美自拍偷拍| 国产呦萝稀缺另类资源| 91日韩精品一区| 国产欧美精品区一区二区三区 | 玖玖九九国产精品| 欧美亚洲另类激情小说| 久久精品一区二区三区四区| 久久精品国产精品亚洲综合| 欧美丝袜丝交足nylons| 亚洲综合久久久| 日本大胆欧美人术艺术动态| 欧美在线不卡视频| 亚洲精品va在线观看| www.久久久久久久久| 中文字幕久久午夜不卡| 国产成人av电影在线观看| 欧美日韩情趣电影| 亚洲成av人片在www色猫咪| 欧美最猛黑人xxxxx猛交| 国产精品欧美综合在线| 不卡av在线网| 欧美精品vⅰdeose4hd| 亚洲一区日韩精品中文字幕| 欧美中文字幕一区二区三区亚洲| 亚洲日本va午夜在线影院|