久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    13個好用到起飛的Python技巧!

     zZ華 2022-01-08

    圖片

    人生苦短,快學Python??
    Python 是當今廣泛使用的編程語言之一,在數據科學、科學計算、Web 開發(fā)、游戲開發(fā)和構建桌面圖形界面等各個領域都有應用。Python 因其在各個領域的實用性、與 Java、C 和 C++ 等其他編程語言相比的生產力以及與英語類似的命令而廣受歡迎。
    假如你也是Python學習愛好者,那么今天講述的13個技巧,真挺香!

    列表

    與列表相關的6個操作,介紹如下;

    1. 將兩個列表合并到一個字典中

    假設我們在Python中有兩個列表,我們希望將它們合并為字典形式,其中一個列表的項目作為字典的鍵,另一個作為值。這是在用 Python 編寫代碼時經常遇到的一個非常常見的問題。
    但是為了解決這個問題,我們需要考慮幾個限制,比如兩個列表的大小,兩個列表中項目的類型,以及其中是否有重復的項目,尤其是我們將使用的項目 作為鑰匙。我們可以通過使用像 zip 這樣的內置函數來克服這個問題。
    keys_list = ['A''B''C']
    values_list = ['blue''red''bold']

    # 有 3 種方法可以將這兩個列表轉換為字典
    # 1.使用Python zip、dict函數
    dict_method_1 = dict(zip(keys_list, values_list))

    # 2. 使用帶有字典推導式的 zip 函數
    dict_method_2 = {key:value for key, value in zip(keys_list, values_list)}

    # 3.循環(huán)使用zip函數
    items_tuples = zip(keys_list, values_list) 
    dict_method_3 = {} 
    for key, value in items_tuples: 
        if key in dict_method_3: 
            pass 
        else
            dict_method_3[key] = value
            
    print(dict_method_1)
    print(dict_method_2)
    print(dict_method_3)
    結果如下:

    圖片

    2.將兩個或多個列表合并為一個列表

    當我們有兩個或更多列表時,我們希望將它們全部收集到一個大列表中,其中較小列表的所有第一項構成較大列表中的第一個列表。
    例如,如果我有 4 個列表 [1,2,3]、['a','b','c']、['h','e','y'], 和[4,5,6],我們想為這四個列表創(chuàng)建一個新列表;它將是 [[1,'a','h',4], [2,'b','e',5], [3,'c','y',6]] 。
    def merge(*args, missing_val = None):
        max_length = max([len(lst) for lst in args])
        outList = []
        for i in range(max_length):
            outList.append([args[k][i] if i < len(args[k]) else missing_val for k in range(len(args))])
        return outList

    merge([1,2,3],['a','b','c'],['h','e','y'],[4,5,6])
    結果如下:
    圖片

    3. 對字典列表進行排序

    下一組日常列表任務是排序任務。根據列表中包含的項目的數據類型,我們將采用稍微不同的方式對它們進行排序。讓我們首先從對字典列表進行排序開始。
    dicts_lists = [
      {
        'Name''James',
        'Age': 20,
      },
      {
         'Name''May',
         'Age': 14,
      },
      {
        'Name''Katy',
        'Age': 23,
      }
    ]

    # 方法一
    dicts_lists.sort(key=lambda item: item.get('Age'))

    # 方法二
    from operator import itemgetter
    f = itemgetter('Name')
    dicts_lists.sort(key=f)
    結果如下:
    圖片

    4. 對字符串列表進行排序

    我們經常面臨包含字符串的列表,我們需要按字母順序、長度或我們想要或我們的應用程序需要的任何其他因素對這些列表進行排序。
    現在,我應該提到這些是對字符串列表進行排序的直接方法,但有時您可能需要實現排序算法來解決該問題。

    my_list = ['blue''red''green']

    # 方法一
    my_list.sort() 
    my_list = sorted(my_list, key=len) 

    # 方法二
    import locale
    from functools import cmp_to_key
    my_list = sorted(my_list, key=cmp_to_key(locale.strcoll)) 
    結果如下:
    圖片

    5. 根據另一個列表對列表進行排序

    有時,我們可能想要/需要使用一個列表來對另一個列表進行排序。因此,我們將有一個數字列表(索引)和一個我想使用這些索引進行排序的列表。
    a = ['blue''green''orange''purple''yellow']
    b = [3, 2, 5, 4, 1]

    sortedList =  [val for (_, val) in sorted(zip(b, a), key=lambda x: x[0])]
    print(sortedList)
    結果如下:
    圖片

    6. 將列表映射到字典

    如果給定一個列表并將其映射到字典中。也就是說,我想將我的列表轉換為帶有數字鍵的字典,應該怎么做呢?

    mylist = ['blue''orange''green']
    #Map the list into a dict using the map, zip and dict functions
    mapped_dict = dict(zip(itr, map(fn, itr)))

    字典

    與字典相關的2個操作,介紹如下;

    7. 合并兩個或多個字典

    假設我們有兩個或多個字典,并且我們希望將它們全部合并為一個具有唯一鍵的字典。
    from collections import defaultdict

    def merge_dicts(*dicts):
        mdict = defaultdict(list)
        for dict in dicts:
        for key in dict:
            res[key].append(d[key])
        return dict(mdict)

    8. 反轉字典

    一個非常常見的字典任務是如果我們有一個字典并且想要反轉它的鍵和值。因此,鍵將成為值,而值將成為鍵。
    當我們這樣做時,我們需要確保我沒有重復的鍵,值可以重復,但鍵不能,并確保所有新鍵都是可散列的。
    my_dict = {
      'brand''Ford',
      'model''Mustang',
      'year': 1964
    }
    # 方法一
    my_inverted_dict_1 = dict(map(reversed, my_dict.items()))

    # 方法二
    from collections import defaultdict
    my_inverted_dict_2 = defaultdict(list)
    {my_inverted_dict_2[v].append(k) for k, v in my_dict.items()}

    print(my_inverted_dict_1)
    print(my_inverted_dict_2)
    結果如下:
    圖片

    字符串

    與字符串相關的3個操作,介紹如下;

    9. 使用 f 字符串

    格式化字符串可能是您幾乎每天都需要完成的第一項任務。在 Python 中有多種方法可以格式化字符串;我最喜歡的是使用 f 字符串。
    str_val = 'books'
    num_val = 15
    print(f'{num_val} {str_val}'
    print(f'{num_val % 2 = }'
    print(f'{str_val!r}'

    price_val = 5.18362
    print(f'{price_val:.2f}'

    from datetime import datetime;
    date_val = datetime.utcnow()
    print(f'{date_val=:%Y-%m-%d}'
    結果如下:
    圖片

    10. 檢查子串

    我之前需要多次執(zhí)行的一項非常常見的任務是,檢查字符串是否在字符串列表中。
    addresses = ['123 Elm Street''531 Oak Street''678 Maple Street']
    street = 'Elm Street'

    # 方法一
    for address in addresses:
        if address.find(street) >= 0:
            print(address)
            
    # 方法二
    for address in addresses:
        if street in address:
            print(address)
    結果如下:
    圖片

    11. 以字節(jié)為單位獲取字符串的大小

    有時,尤其是在構建內存關鍵應用程序時,我們需要知道我們的字符串使用了多少內存。幸運的是,這可以通過一行代碼快速完成。
    str1 = 'hello'
    str2 = '??'

    def str_size(s):
        return len(s.encode('utf-8'))

    print(str_size(str1))
    print(str_size(str2))
    結果如下:
    圖片

    輸入/輸出操作

    與輸入/輸出操作相關的2個操作,介紹如下;

    12. 檢查文件是否存在

    在數據科學和許多其他應用程序中,我們經常需要從文件中讀取數據或向其中寫入數據。但要做到這一點,我們需要檢查文件是否存在。因此,我們的代碼不會因錯誤而終止。
    # 方法一
    import os 
    exists = os.path.isfile('/path/to/file')

    # 方法二
    from pathlib import Path
    config = Path('/path/to/file'
    if config.is_file(): 
        pass

    13.解析電子表格

    另一種非常常見的文件交互是從電子表格中解析數據。幸運的是,我們有 CSV 模塊來幫助我們有效地執(zhí)行該任務。
    import csv
    csv_mapping_list = []
    with open('/path/to/data.csv') as my_data:
        csv_reader = csv.reader(my_data, delimiter=',')
        line_count = 0
        for line in csv_reader:
            if line_count == 0:
                header = line
            else:
                row_dict = {key: value for key, value in zip(header, line)}
                csv_mapping_list.append(row_dict)
            line_count += 1

    PS公號內回復「Python」即可進入Python 新手學習交流群,一起 100 天計劃!

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 久久亚洲精品11p| 久久毛片少妇高潮| 成人午夜av在线播放| 精品乱码一区二区三四五区| 国产三级精品三级| 亚洲一区二区精品极品| 综合图区亚洲欧美另类图片| 国产激情视频在线观看的| 成年女人片免费视频播放A| 7777精品久久久大香线蕉| 色爱综合激情五月激情| 中文字幕AV无码一二三区电影| 精品一区二区三区不卡| 国内丰满熟女出轨VIDEOS| 亚洲精品在线二区三区| 精品日韩亚洲AV无码一区二区三区 | 欧美国产成人精品二区芒果视频| 99久久精品国产一区二区蜜芽 | 狠狠婷婷色五月中文字幕| 日韩人妻无码精品久久| 国产成人AV国语在线观看| 无码高潮少妇毛多水多水免费| 精品国产迷系列在线观看| 免费人成在线观看| 久章草在线毛片视频播放| 精品无码国产自产在线观看水浒传| 色爱综合激情五月激情| 少妇人妻无码专区视频| 国产日产欧产精品精乱了派| 无码国产偷倩在线播放| gogogo高清在线观看视频中文 | 久久亚洲精品无码播放| 亚洲国产无套无码AV电影| 国产成人啪精品视频免费APP| 在线涩涩免费观看国产精品| 国产精品久久久久影院| 国产又色又刺激高潮视频| 日韩av日韩av在线| 中文丝袜人妻一区二区| 人妻AV中文字幕一区二区三区 | 中文字幕日韩有码av|