python基礎技巧綜合訓練題2

来源:https://www.cnblogs.com/ghostwu/archive/2018/03/31/8684509.html
-Advertisement-
Play Games

1,判斷一個字元串中的每一個字母是否都在另一個字元串中,可以利用集合的特性來解,集合的元素如果存在,再次更新(update) 是添加不進集合的,那麼集合的長度還是跟原來一樣,如果添加進去,集合長度就會增加 2,如果是多個字元呢? 3,統計出現次數最多的字元 這裡有個lambda表達式, key指定按 ...


1,判斷一個字元串中的每一個字母是否都在另一個字元串中,可以利用集合的特性來解,集合的元素如果存在,再次更新(update) 是添加不進集合的,那麼集合的長度還是跟原來一樣,如果添加進去,集合長度就會增加

>>> a = 'ghost'
>>> b = 'hello, can you help me install ghost windows xp system'
>>> b_set = set( b )
>>> b_set.update( list( a ) )
>>> print len( b_set ) == len( set( b ) )
True
>>> a = 'abcostg'
>>> b_set.update( list( a ) )
>>> print len( b_set ) == len( set( b ) )
False
>>> 

2,如果是多個字元呢?

#!/usr/bin/python
#coding:utf-8

#str_list = [ 'abc', 'ghost', 'hello' ]
str_list = [ 'abc', 'ghost', 'hellox' ]
target_str = "abcdefghijklopqrst"
target_str_set = set( target_str )

for val in str_list:
    target_str_set.update( val )

print len( target_str_set ) == len( set( target_str ) )

3,統計出現次數最多的字元

ghostwu@ghostwu:~/python/tmp$ python str3.py
[('f', 7), ('s', 5), ('a', 4), ('j', 4), ('k', 3), ('h', 2), ('3', 2), ('1', 2), ('2', 2), ('d', 1), ('l', 1), ('4', 1), (';', 1)]
ghostwu@ghostwu:~/python/tmp$ cat str3.py 
#!/usr/bin/python
#coding:utf-8

str = 'askfjkjasf1234fasdfasfsh;lkjfhjf123'

l = ( [ ( key, str.count( key ) ) for key in set( str ) ] )
l.sort( key = lambda item : item[1], reverse = True )
print l

ghostwu@ghostwu:~/python/tmp$ 

這裡有個lambda表達式, key指定按哪個鍵排序, item是形參,代表當前的元組,item[1],那就是取元組中第2項,這裡就是字元串的次數,reverse = True,從高到低排序 .

4,統計this模塊中, be, is, than,三個單詞的出現次數

ghostwu@ghostwu:~/python/tmp$ !p
python statics.py 
[('be', 3), ('is', 10), ('than', 8)]
ghostwu@ghostwu:~/python/tmp$ cat statics.py 
#!/usr/bin/python
#coding:utf-8

import os
this_str = os.popen( "python -m this" ).read()
this_str = this_str.replace( '\n', '' )
l = this_str.split( ' ' )

print [ ( x, l.count( x ) ) for x in ['be', 'is', 'than' ] ]
ghostwu@ghostwu:~/python/tmp$ 

os.popen( "python -m this" ).read  讀出命令行python -m this  模塊的執行結果到一個字元串中

5,用位移運算符,換算b, kb, mb之間的轉換關係

ghostwu@ghostwu:~/software$ ls -l sogoupinyin_2.2.0.0102_amd64.deb 
-rw-rw-r-- 1 ghostwu ghostwu 22852956 2月   2 14:36 sogoupinyin_2.2.0.0102_amd64.deb
ghostwu@ghostwu:~/software$ ls -lh sogoupinyin_2.2.0.0102_amd64.deb 
-rw-rw-r-- 1 ghostwu ghostwu 22M 2月   2 14:36 sogoupinyin_2.2.0.0102_amd64.deb
ghostwu@ghostwu:~/software$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> size = 22852956
>>> print "%s kb" % ( size >> 10 )
22317 kb
>>> print "%s MB" % ( size >> 20 )
21 MB
>>> 

6,把列表中的值,連接成字元串

>>> a = [10, 20, 30, 1, 2, 3]
>>> s = str( a )
>>> s
'[10, 20, 30, 1, 2, 3]'
>>> type( s )
<type 'str'>
>>> s[1:-1]
'10, 20, 30, 1, 2, 3'
>>> s.replace( ', ', '', s[1:-1] )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required
>>> s[1:-1].replace( ', ', '' )
'102030123'
>>> 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在 Windows 上進行 OpenCV 開發,很多人都是在 Visual Studio 上進行。然而在 VS 上的配置過程實在是個坑。但是其實 OpenCV 開發環境的搭建無非就是讓自己寫的 cpp 在編譯時能成功鏈接上。而這一過程其實可以輕鬆完成。下麵我就介紹一下我在自己的 Win10 上如何借 ...
  • 1、查看Python版本及列印“Hellow World!”: 需要註意的是:在列印“Hello World”之前一定要先執行 python,否則會報無法 “無法初始化設備 PRN”,如圖: 2、查看當前版本的 Python 的所有關鍵字: 3、Python中的數據類型: Number類型:int、 ...
  • pandas讀取文件報如下的錯誤: 當用pandas讀取文件報這種錯誤時,一般是因為你的文件名中帶有中文,例如: data = pd.read_csv('文件.csv') 這種情況就會報錯,只需要這樣更改就可以: f = open('文件.csv') data = pd.read_csv(f) 然後 ...
  • 1、引入依賴 2、配置web.xml 3、配置applicationContext.xml,配置全局許可權 4、配置applicationContext.xml開啟cglib代理,啟動shiro許可權註解掃描 5、在action層中創建subject,交由Security Manager進行許可權校驗 6 ...
  • 文本匹配 在表單輸入項裡面輸入值,根據輸入值,點擊判斷按鈕,讓對應的覆選框選中 獲取覆選框狀態 點擊按鈕,獲取覆選框狀態為選中的個數,並將結果彈出在頁面 基礎頁面效果如下: 屬性更改 當覆選框被選中時,覆選框對應的文本顏色為紅色; 當覆選框未被選中時,覆選框對應的文本顏色為黑色; 基礎頁面效果如下: ...
  • 個人想到的解決方法有兩種,一種是 .replace(' old ',' new ') 第一個參數是需要換掉的內容比如空格,第二個是替換成的內容,可以把字元串中的空格全部替換掉. 第二種方法是像這樣 先用 .split(str,num) (str -- 分隔符,預設為所有的空字元,包括空格、換行(\n ...
  • 首先定義一個compare函數: 然後調用該函數就可以對List中的元素排序: 要求ListA中的元素有value這個屬性才行,當然也可以把value換成ListA中的元素的其他共有屬性也可以。感覺和Java差不多。 ...
  • 博客代碼地址:https://gitee.com/llQ13/four_operations/tree/master/SZYSExp_1 一、題目描述: 實踐能力的提高當然就是得多動手了,那麼就從第一個個人項目開始吧,用一周的時間完成一個基於控制台的四則運算程式,實現一個自動生成小學四則運算題目的命 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...