python---序列 (str,list,tuple)

一、 序列類型入門

python的數據類型:int	float bool str
運算符+ - * / %  > <  and or not
流程控制ifelsewhilefor
掌握python的2大容器類型數值類型(3個):int float bool序列類型容器(3個):str : 可以存儲 數字、字母、特殊符號、等一切文本數據的容器list (列表)tuple (元組)散列類型容器(2個)  set(集合)、dict(字典)函數基礎

6.1 序列簡介

數據結構:編程語言中會將,以某種方式組合起來的數據元素集合稱為數據結構

  • 序列類型:存放多個值在連續的內存空間中,并且這些值按照一定順序排列,每個值都有所在位置的編號 (下標) 訪問它們

  • 序列類型:可以存放多個數據的一種數據類型,他有序

6.2 列表和元組

6.2.1 列表 list

列表 list:有序的集合,可以裝任何數據類型的容器

  • 創建列表

      1. 直接寫 [ ] 括起來,里面的元素使用 逗號 隔開
      
      # 創建一個變量,數據是列表,長度為7
      name_arr = ['小明', '小李', '年齡', '水果',10,6.666,True]
      print(name_arr)
      print(type(name_arr)) #查看數據類型是list型# 注意,請勿在字符串中寫上, 這個長度為1
      name_arr = ['香蕉,橘子,榴蓮']
      print(name_arr)
      print(type(name_arr))
      
      1. range() 函數 : 根據給定的參數,生成有規律的整數序列
      range(start,stop,step=1)- start 開始- stop 停止- step 步長,可以不填,默認1
      包頭不包尾/前閉后開[ )
      🌰:       
      range(1,101)   #輸出1-100,取不到101
      
      print(list(range(1, 1001))) # 生成1~1000的列表range(start,stop,step)- start 開始- stop 停止- step 步長# 需要1~100中間的偶數
      print(list(range(2, 101,2)))# 需要10~1倒序來      
      arr = list(range(10, 0, -1)) # 步長也可以為負數
      print(arr)

6.2.2 元組 tuple

元組和列表基本一樣,也是用來存儲多個數據的,可以裝任何數據類型的容器。

  • 最大的區別:列表是可以修改的

    • 元組一但創建以后,則無法再變更
    • 元組:不能改的列表
  • 創建方式

    1. 直接使用 ( ) 英文括號 圈起來,數據之間用英文逗號隔開

      # 正常情況  元組是() 列表是[ ]
      number = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, True, False, '哈哈哈')
      print(number, type(number))
      # 也可以直接  數據1,數據2,
      number = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, True, False, '彬彬'
      print(number, type(number))# 一個元素的特殊情況  當元組只有一個元素的時候,需要 (1,) 表示
      number = (1,)  # (1) 括號被優先理解為 優先級
      print(number, type(number))

    2 . 也能通過 range + 類型轉換創建

    t = tuple(range(1,101))print(t)
    print(type(t))
    

6.3 序列類型基本操作

序列:list、tuple、str 全部通用

6.3.1 下標

下標是序列中每個元素的編號
在這里插入圖片描述

“Python是世界上最好的語言”

序列類型中比如字符串,每個字符串都會存在一個下標(索引),從左往右開始的。

  • 注意,下標默認是從0開始

下標的作用:可以幫助訪問序列中的某個元素

語法格式

***序列[下標]*** 
  • s = "Python是世界上最好的語言"print(s[0]) # P 下標從0開始
    print(s[5]) # n# 創建一個變量,數據是列表,長度為4
    name_arr = ['彬彬', '翠果', '冰糖', '清越']
    print(name_arr,type(name_arr))
    name = name_arr[0]
    print(name,type(name))# 訪問的時候,不能超出下標最大范圍  0~3
    # print(name_arr[4])
    print(name_arr[3])
  • 可以反著取下標:右往左 -1 -2 -3

url = "https://www.baidu.com/s?wd=hello&rsv_spt=1"
print(url[41])  # 正向下標
print(url[-1])  # -1 表示倒數第一個

6.3.2 切片

單獨提取一個,可以直接使用 序列[下標]

L = ['彬彬', '翠果', '清越', '晶晶', '不凡']L2 = [L[1], L[2], L[3]]  # 笨方法
print(L2)# 切片也能干這種事情
"""單獨訪問: 序列[下標]切片訪問:  序列[下標1:下標2] 可以切分序列,切出來類型不變下標1:表示開始的下標下標2:表示結尾的下標包頭不包尾/前閉后開
"""# 切片:截取多個元素
# 語法:序列[開始下標:結束下標+1]
# 注意:結束下標同range一樣,不包尾部
L = ['彬彬', '翠果', '清越', '冰糖', '不凡']# 也是不包括 尾部  語法和range非常像
print(L[1:3])  # 從下標1處取到下標2處
print(L[1:4])  # 從下標1處取到下標3處
print(L[1:5])  # 從下標1處取到下標4處
print(L[1:2])  # 從下標1處取到下標1處s = "hello world"
print(s[0:5])  # 開始下標0 結束下標4  由于取不到尾 所以4+1
# 簡寫:如果是從頭開始切的
print(s[:5])  # 頭部可以省略# 提取:world
print(s[6:])  # 如果是切到尾部,也可以省略不寫# 小練習:以下是什么效果?
print(s[:]) # 從頭切到尾# 切片和range語法很像
# 擴展語法:序列[開始下標:結束下標+1:步長單位=1]  (了解) 
s = "hello world"
# print(s[::2]) # 從頭到尾 2步隔著切
# print(s[::5])# ★步長常用的時候:利用-1步長來反轉序列
print(s[::-1]) # 當步長為負數的時候,頭部就是右邊,尾部就是左邊

6.3.3 成員運算符

返回的也是布爾值

元素 in 容器

運算符描述實例
in如果在指定的容器中找到值返回 True,否則返回 False。x 在 y 容器中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的容器中沒有找到值返回 True,否則返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

in : 屬于 , 可以判斷某個元素是否屬于 序列

not in : 不屬于


# 列表判斷元素是否存在
arr = ["張三",'李四','王五']
while True:name = input("請輸入用戶名:")print(name in arr) # 原來判斷是否存在一個元素s = "hello python3.8.10"
# 字符串單個判斷存在不存在
print("p" in s) # True
print(" " in s) # True# 整體判斷,要當作一個整體去找
print("hello" in s) # True 能找到hello這個整體
print("hellopython" in s) # False
print("hello python" in s) # True
print("3.8.10" in s) # True
print("3.10.8" in s) # False# 空字符串: ""
print("" in s) # 空字符串屬于一切字符串子集

6.3.4 序列也能運算

序列類型相加 都是合并

  • 字符串相加:‘a’ + ‘b’ = ‘ab’
  • 列表相加 : [1,2,3] + [4,5,6] = [1,2,3,4,5,6]
字符串 是可以通過  相加 和 乘法 運算arr = [1,2,3]
arr2 = [3,4,5]
arr + arr2 = [1,2,3,3,4,5]# 乘法只能乘整數,本質也是反復和自己拼接
arr2 * 3 => [3,4,5,3,4,5,3,4,5]

6.4 序列常用內置函數

實現和序列相關的操作

函數:print( ) type( ) input( ) id( )

  • python中的函數,不要等價數學函數
  • 函數等于是一個功能,可以直接使用的封裝好的工具
  • 學習一個函數就學2個東西
    1. 作用是什么
    2. 參數怎么填
    3. 他返回什么東西沒?

內置函數

  • python官方提供的功能
函數功能
len()計算序列的長度,即返回序列中包含多少個元素。
max()找出序列中的最大元素。注意,對序列使用 sum() 函數時,做加和操作的必須都是數字,不能是字符或字符串,否則該函數將拋出異常,因為解釋器無法判定是要做連接操作(+ 運算符可以連接兩個序列),還是做加和操作。
min()找出序列中的最小元素。
sum()計算元素和。
sorted()對元素進行排序

6.4.1 len( )

len( ) : 計算序列的長度,即返回序列中包含多少個元素。

序列的長度就是指序列的元素數量# len()
#   作用:求出序列的長度
#   參數(括號里面的東西):序列
#   返回:長度 int
print(len(name_list))
print(len(list1))
s = "hello world"
print(len(s))s = "hello"
print(len(s)) # 字符串的長度lis = [1, 2, 3, '哈哈']s = "hello"
# 最大下標 = 長度 - 1  # 為什么要減1,因為下標是從0開始的
index = len(s) - 1
print(s[index])

6.4.2 ASCII編碼(了解)

ASCII 本質就是一個一個數,計算機采用了這個編碼方式

計算機真正存儲:01010101111111111

計算機沒有辦法去真正有意義的存 ‘a’ 進去
通過規則

‘a’ -> 97 -> 0110 0001

字符->ASCII編碼->二進制

在這里插入圖片描述

# python支持使用 ord()函數 將一個字符作為參數,返回對應的ascii值
#               chr()函數 將一個整數作為參數,返回對應的字符s = 'a'
print(ord(s)) # a:97   A:65
print(chr(97))

6.4.3 max( )與min( )

max( ) : 返回給定參數的最大值,參數可以是序列

作用:求最大值和最小值
參數:序列
返回:最值lis = [9, -5, 5, 2, 7, 100, 1, 30]# 最大值 max
print(max(lis))
# 最小值 min
print(min(lis))# 字符串也是可以比較大小的。
# ascii編碼,本質上也是在比數字
s = ['~','b','c','z','@']
print(max(s)) 

6.4.4 sum( )

sum(序列) : 對序列進行求和計算

作用:對序列進行求和計算
參數:序列
返回:和 ints = [1,2,3,4,5,6]
print(sum(s))# 求1+2+3+...+100 的和,不用fora = list(range(1,101)) # 創建一個 1~100的a列表
print(sum(a)) # 對a列表進行求和

6.4.5 sorted( )

sorted: 可以對序列類型進行排序操作,支持升序(默認)和降序,并返回一個新的序列

lis1 = [10, 5, 11, 6, 8, 0]作用:對序列進行排序
參數:序列
返回:返回的一定是列表"""print 輸出 額外功能參數sep 分隔符功能end 結尾換行sorted 排序默認是升序的reverse = True   # 降序reverse = False  # 升序  默認的
"""
list1 = [1, 9, 2, 8, 3, 7, 4, 6, 5]print(sorted(list1, reverse=True))
# 注意括號區分 不要寫到print里面去了,reverse是sorted函數功能參數
# 錯誤案例
# print(sorted(list1),reverse=True)list1 = [1, 9, 2, 8, 3, 7, 4, 6, 5]
# 方法二,也可以先排好有序,然后直接 [::-1] 反轉
print(sorted(list1)[::-1])
案例:水仙花數
求所有三位數的水仙花數
"""如何提取三位數的 各個部位"""
# 方法一:轉字符串來提取下標
# for i in range(100, 1000):
#     #     # i 就是表示三位數
#     str_i = str(i)  # 整數 轉 字符串(序列)
#     x = int(str_i[0])
#     y = int(str_i[1])
#     z = int(str_i[2])
#     if x ** 3 + y ** 3 + z ** 3 == i:
#         print(i, "水仙花數")# # 方法二:數字計算取出來
# for i in range(100, 1000):
#     x = i // 100
#     y = i % 100 // 10
#     z = i % 10
#     if x ** 3 + y ** 3 + z ** 3 == i:
#         print(i, "水仙花數")# 方法三:循環嵌套
# for x in range(1, 10):
#     for y in range(0, 10):
#         for z in range(0, 10):
#             i = x * 100 + y * 10 + z  # 還原成3位數
#             if x ** 3 + y ** 3 + z ** 3 == i:
#                 print(i)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72423.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS元素層疊順序規則

CSS元素層疊順序規則 看圖說話總結: background/borderz-index(<0)blockfloatinline/inline-blockz-index(0,auto)z-index (>0)

刪除有序數組中的重復項(26)

26. 刪除有序數組中的重復項 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:int removeDuplicates(vector<int>& nums) {auto first nums.begin();auto last nums.end();auto result first;if (first last) {return std::…

Vue 概念、歷史、發展和Vue簡介

一、Vue概念 官方定義&#xff1a; 漸進式JavaScript 框架&#xff0c;易學易用&#xff0c;性能出色&#xff0c;適用場景豐富的 Web 前端框架。 Vue.js 是一個流行的前端JavaScript框架&#xff0c;由尤雨溪&#xff08;Evan You&#xff09;開發并維護。 它最初于2014年發…

ArcGIS Pro將有文字標注底圖切換為無標注底圖(在線地圖圖源)

今天介紹一下在ArcGIS Pro將有標注的地形底圖換成無標注的底圖。 大家在這項目底圖時候會經常調用ArcGIS Pro自帶的地形圖&#xff0c;但是這個地形圖自帶是有注記的&#xff0c;如下圖。 如何更改&#xff0c;才可以調用無文字注記的呢&#xff1f; 對于一個已經切好圖的有注記…

Xxl-Job學習筆記

目錄 概述 核心架構 核心特點 應用場景 什么是任務調度 快速入門 獲取源碼 初始化調度數據庫 基本配置 數據源datasource 郵箱email&#xff08;可選&#xff09; 會話令牌access token 啟動調度中心 啟動執行器 依賴 yaml基本配置 XxlJobConfig類配置 定義執…

讓雙向鏈表不在云里霧里

又來博客留下我的足跡了&#xff0c;哈哈哈&#xff0c;這次是對于雙向鏈表的理解 目錄 創建雙向鏈表&#xff1a; 申請結點&#xff1a; 雙向鏈表初始化&#xff1a; 雙向鏈表插入結點&#xff1a; 雙向鏈表刪除結點&#xff1a; 雙向鏈表的打印&#xff1a; 雙向鏈表…

java虛擬機(JVM)以及各種參數詳解

Java 虛擬機&#xff08;JVM&#xff09;提供了許多參數來調整其行為和性能&#xff0c;以便更好地適應不同的應用場景。理解和使用這些參數對于優化 Java 應用程序的性能非常重要。以下是一些常用的 JVM 參數及其詳細說明&#xff1a; 1. 內存管理參數 -Xms<size>&…

如何搭配 AI 量化策略選股

AI 量化選股策略結合了 技術指標、基本面數據、市場情緒&#xff0c;利用 機器學習、深度學習、因子分析 等方法&#xff0c;提高選股精準度和交易決策效率。下面介紹 如何搭配 AI 量化策略選股。 1. AI 量化選股的核心方法 AI 量化選股主要依靠 數據驅動&#xff0c;包括&…

Python 爬蟲:一文掌握 SVG 映射反爬蟲

更多內容請見: 爬蟲和逆向教程-專欄介紹和目錄 文章目錄 1. SVG 概述1.1 SVG的優點1.1 映射反爬蟲的原理2. SVG 映射反爬蟲的示例3. 應對 SVG 映射反爬蟲的方法3.1 解析 SVG 圖像3.2 處理自定義字體3.3 使用 OCR 技術3.4 動態生成 SVG 的處理4. 實戰案例4.1 使用 SVG 映射顯示…

前端工程化之前端工程化詳解 包管理工具

前端工程化詳解 & 包管理工具 前端工程化什么是前端工程化前端工程化發展腳手架能力 體驗度量規范流程效能流程扭轉 穩定性建設針對整體穩定性建設 可監控&#xff1a;前端監控系統 包管理工具npm包詳解package.jsonname 模塊名description 模塊描述信息keywords&#xff1…

《Python實戰進階》No24: PyAutoGUI 實現桌面自動化

No24: PyAutoGUI 實現桌面自動化 摘要 PyAutoGUI 是一個跨平臺的桌面自動化工具&#xff0c;能夠模擬鼠標點擊、鍵盤輸入、屏幕截圖與圖像識別&#xff0c;適用于重復性桌面任務&#xff08;如表單填寫、游戲操作、批量文件處理&#xff09;。本集通過代碼截圖輸出日志的實戰形…

一周學會Flask3 Python Web開發-SQLAlchemy查詢所有數據操作-班級模塊

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程&#xff1a; 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 我們來新建一個的藍圖模塊-班級模塊&#xff0c;后面可以和學生模塊&#xff0c;實現一對多的數據庫操作。 blueprint下新建g…

Neural Architecture Search for Transformers:A Survey

摘要 基于 Transformer 的深度神經網絡架構因其在自然語言處理 (NLP) 和計算機視覺 (CV) 領域的各種應用中的有效性而引起了極大的興趣。這些模型是多種語言任務&#xff08;例如情緒分析和文本摘要&#xff09;的實際選擇&#xff0c;取代了長短期記憶 (LSTM) 模型。視覺 Tr…

TCP 全連接隊列 內核層理解socket

TCP 全連接隊列 理解 listen 的第二個參數 int listen(int sockfd, int backlog);backlog 參數表示 全連接隊列&#xff08;accept 隊列&#xff09;的最大長度。 那什么是全連接隊列呢&#xff1f; 三次握手 & accept() 處理流程 客戶端發送 SYN&#xff0c;服務器收到并…

程序化廣告行業(18/89):交易模式與關鍵概念解析

程序化廣告行業&#xff08;18/89&#xff09;&#xff1a;交易模式與關鍵概念解析 大家好呀&#xff01;一直以來&#xff0c;我都在深入研究程序化廣告這個充滿挑戰與機遇的領域&#xff0c;在學習過程中收獲了很多&#xff0c;也迫不及待想和大家分享。寫這篇博客&#xff…

在離線情況下如何使用 Python 翻譯文本

以下是在離線環境下使用Python進行文本翻譯的兩種主流方案&#xff0c;包含本地模型部署和輕量級詞典兩種方法&#xff1a; 方案一&#xff1a;使用本地神經網絡翻譯模型&#xff08;推薦&#xff09; # 安裝依賴&#xff08;需提前下載&#xff09; # pip install argos-tra…

OpenEuler-22.03-LTS上利用Ansible輕松部署MySQL 5.7

一、需求 使用ansible自動化部署mysql二進制部署mysql部署mysql并創建JDBC用戶 二、環境信息 本文涉及的代碼&#xff0c;配置文件地址&#xff1a; 鏈接&#xff1a;百度網盤 請輸入提取碼 提取碼&#xff1a;1g6y 軟件名稱版本備注Ansible2.9.27All modules — Ansible Doc…

基于javaweb的SpringBoot農資商城購物商城系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

angular打地鼠

說明&#xff1a;我計劃用angular做一款打地鼠的小游戲&#xff0c; 打地鼠游戲實現文檔 &#x1f3ae; 游戲邏輯 ?游戲場景 采用 3x3 網格布局的 9 個地鼠洞?核心機制 地鼠隨機從洞口彈出點擊有效目標獲得積分30 秒倒計時游戲模式 ?難度系統 簡單模式&#xff1a;生成間…

博客網站(springboot)整合deepseek實現在線調用

&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389; 歡迎訪問的個人博客&#xff1a;https://swzbk.site/&#xff0c;加好友&#xff0c;拉你入福利群 &#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389; 1、de…