python.day.04——常用數據類型(一):str&List

来源:https://www.cnblogs.com/Rosay9204781/archive/2018/06/08/9157307.html
-Advertisement-
Play Games

一、常用字元串操作 upper(x)把字母變成大寫 lower(x)把字母變成小寫 split(str,num) 對字元串進行切割,返回一個列表:str-分隔符,預設為所有的空字元,包括空格,換行(\n),製表符(\t)等;num -- 分割次數 strip(chars ) 移除字元串頭尾指定的字元 ...


一、常用字元串操作

  • upper(x)把字母變成大寫
  • lower(x)把字母變成小寫
str_1="hello,python,lower,'666','777'"
#upper()把字母編程大寫
#lower()把字母變成小寫
print(str_1.upper())
print(str_1.lower())
  • split(str,num)  對字元串進行切割,返回一個列表:str-分隔符,預設為所有的空字元,包括空格,換行(\n),製表符(\t)等;num -- 分割次數
str_1 = "hello,python,lower,'666','777'"
print(str_1.split('l'))   # ['he', '', 'o,python,', "ower,'666','777'"]
print(str_1.split(','))   # ['hello', 'python', 'lower', "'666'", "'777'"]
print(str_1.split(',', 2))   # ['hello', 'python', "lower,'666','777'"]
  • strip(chars ) 移除字元串頭尾指定的字元(預設為空格或換行符)或字元序列,返回一個字元串:chars -- 移除字元串頭尾指定的字元序列
str_2="6hello,python,lower,'666','7776'"
str_3="8888hello,python,lower,'666','77768888'"
print(str_2.split('6'))   # ['', "hello,python,lower,'", '', '', "','777", "'"]
print(str_3.split('8'))   # ['', '', '', '', "hello,python,lower,'666','7776", '', '', '', "'"]
  • join  把join前面的字元串/字元 跟join傳進來的字元串  每一個都要進行拼接

 

str_2="6hello,python,lower,'666','7776'"
print('e6'.join(str_2))

控制台輸出:
6e6he6ee6le6le6oe6,e6pe6ye6te6he6oe6ne6,e6le6oe6we6ee6re6,e6'e66e66e66e6'e6,e6'e67e67e67e66e6'

備註:常使用來對字元進行拼接,或者將列表數據類型轉換成字元串數據類型

new_numbers = []
for n in List:
  new_numbers.append(str(n))
numbers = new_numbers
num = ''.join(numbers)
print("加密後輸出的整數為:%s" % num)

二、列表的處理

  • 切片操作
  • # 切片操作
    name = ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    print('1:', name)
    print('2:', name[0], name[2])
    print('3:', name[1:3]) #切片
    print('4:', name[-2:]) #切片
    print('5:', name[::-1])   #切片的結果是倒序排列
    print('6:', name[:-1])    #切片的結果是,輸出到倒數第二位  -1-1=-2
    
    控制台輸出
    1: ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    2: trek redline
    3: ['cannondale', 'redline']
    4: ['specialized', 'trek']
    5: ['trek', 'specialized', 'redline', 'cannondale', 'trek']
    6: ['trek', 'cannondale', 'redline', 'specialized']
  • 增加:在列表的後面新增元素 append();在列表的任何位置中插入元素insert();
  • name = ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    name.append("guapi")           #在列表中添加新的元素,附加到列表的末尾
    name.insert(1, "nihao")        #在列表的任何位置添加元素
    name.insert(3, "doudou")
    name[2] = "guyun"              #修改列表中的元素
  • 索引:若不知道該元素的位置可以通過index()來進行搜索
  • name = ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    print("1:", name.index("trek"))
    print("2:", name[name.index("trek")])
    
    控制台輸出:
    1: 0
    2: trek
  • 刪除:直接刪除元素remove();指定位置開始刪除pop(x):若要使用remove()進行刪除,必須先索引一下自己的要刪除的元素是否存在,若不存在系統會拋出異常;pop()若不含參數則,從末尾開始刪除
  • name.remove("guyun")          #直接刪除元素
    del name[1]                   #根據元素的下標,來刪除元素
    name.pop()                    #不輸入下標,刪除預設最後一個值
    name.pop(1)
  • 清空列表clear();統計某個元素的個數count()
  • #name.clear()   #清空列表
    #print(name.count("trek"))   #count 統計個數
  • 反轉與排序:reverse()  /  sort()
  • name.reverse()        #reverse 反轉
    print(name)
    name.sort()           #sort 排序 (按照ASCTT中的排序方法)
    print(name) 
    
    控制台輸出:
    ['trek', 'specialized', 'redline', 'cannondale', 'trek']
    ['cannondale', 'redline', 'specialized', 'trek', 'trek']
  • 更改:更改列表中的元素
  • list_1=[1,2,'666']
    list_1[2]='python'  #更改為字元串
    print(list_1)
    list_1[2]=666  #更改為整形
  • 複製:copy()
  • name = ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    name3 = name.copy()
    print('1:name--', name)
    print('2:name3--', name3)
    name.insert(1, "susu")
    print('3:name--', name)
    print('4:name3--', name3)
    
    import copy
    name4 = copy.copy(name)      #淺copy
    print('5:name--', name)
    print('6:name4--', name4)
    name5 = copy.deepcopy(name)   #深copy
    print('7:name--', name)
    print('8:name5--', name5)
    name6 = name[:]              #淺copy
    name7 = list(name)           #淺copy
    print('9:name6--', name6)
    print('10:name7--', name7)
    
    控制台輸出:
    1:name-- ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    2:name3-- ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    3:name-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']
    4:name3-- ['trek', 'cannondale', 'redline', 'specialized', 'trek']
    5:name-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']
    6:name4-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']
    7:name-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']
    8:name5-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']
    9:name6-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']
    10:name7-- ['trek', 'susu', 'cannondale', 'redline', 'specialized', 'trek']

 


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

-Advertisement-
Play Games
更多相關文章
  • Description 下麵的程式輸出結果是: A::Fun A::Do A::Fun C::Do 請填空: 程式代碼如下 ~~~~ include using namespace std; class A { private: int nVal; public: void Fun() { cout ...
  • 當我們瀏覽網頁的時候,經常會看到像下麵這些好看的圖片,你是否想把這些圖片保存下載下來。 我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些圖片點擊滑鼠右鍵的時候並沒有另存為選項,或者你可以通過截圖工具截取下來,但這樣就降低圖片的清晰度,並且這樣效率很低。 那腫麽辦呢? 我們可以通過python 來 ...
  • Description 下麵程式的輸出結果是: destructor B destructor A 請完整寫出 class A。 限制條件:不得為 class A 編寫構造函數。 ~~~~ include using namespace std; class A { // Your Code Her ...
  • 一、概念 早期的 Java API 只支持由本地系統套接字型檔提供所謂的阻塞函數來支持網路編程。由於是阻塞 I/O ,要管理多個併發客戶端,需要為每個新的客戶端Socket 創建一個 Thread 。這將導致一系列的問題,第一,在任何時候都可能有大量的線程處於休眠狀態(不可能每時每刻都有對應的併發數) ...
  • 必需學會SpringBoot基礎知識 Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is ...
  • 本篇教大家如何用Python來實現QQ機器人,如有不足歡迎在評論方指出! 簡單介紹 安裝方法 可在 Python個版本下使用,用 pip 安裝: 使用方法 一、啟動 QQBot 二、操作 QQBot QQBot 啟動後,在另一個控制台視窗使用 qq 命令來操作 QQBot ,目前提供以下命令: li ...
  • 現有要求如下: 通過cmd的方式,求簡單表達式的值。 比如輸入 java Expression 3 + 4 得到的結果為:7 代碼: import java.text.DecimalFormat; public class Expression { public static void main(S ...
  • 本節主要內容:1. 初識⽂件操作2. 只讀(r, rb)3. 只寫(w, wb)4. 追加(a, ab)5. r+讀寫6. w+寫讀7. a+寫讀(追加寫讀)8. 其他操作⽅法9. ⽂件的修改以及另⼀種打開⽂件句柄的⽅式 主要內容:⼀. 初識⽂件操作使⽤python來讀寫⽂件是⾮常簡單的操作. 我們 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...