Python字符串總結

2021-01-08 Python之王

@Author :Runsen

Python字符串總結

什麼字符串

字符串是由獨立字符組成的一個序列,通常包含在單引號(『 』),雙引號(」「)

三引號(''' ''')

s1 = 'hello'

s2 = "hello"

s3 = """hello"""

s1 == s2 == s3

True

三引號字符串常用於函數的注釋

def calculate_similarity(item1, item2):

"""

Calculate similarity between two items

Args:

item1: 1st item

item2: 2nd item

Returns:

similarity score between item1 and item2

"""

轉義字符

用 \ 開頭的字符串,來表示一些特定意義的字符

s = 'a\nb\tc'

print(s)

a

b c

len(s)

5

代碼中的'\n',表示一個字符——換行符;'\t'也表示一個字符,四個空格

字符 a,換行,字符 b,然後制表符,最後列印字符 c 最後列印的輸出橫跨了兩行,但是整個字符串 s 仍然只有 5

常用操作

name = 'jason'

name[0]

'j'

name[1:3]

'as'

for char in name:

print(char)

j

a

s

o

n

注意python的字符串是不可變的

s = 'hello'

s[0] = 'H'

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment

只能通過船創建新的字符串

s = 'H' + s[1:]

s = s.replace('h', 'H')

在java 中有可變的字符串,StringBuilder ,每次改變字符串,無需創建新的字符串,時間複雜度為O(1)

但是在python中如果想要改變字符串,往往需要O(n)的時間複雜度,n是新字符串的長度

拼接字符串

str1 += str2 # 表示 str1 = str1 + str2

# 這個時間複雜度是多少

s = ''

for n in range(0, 100000):

s += str(n)

在python2中總的時間複雜度就為 O(1) + O(2) + … + O(n) = O(n^2)

但是在python3中 str1 += str2 首先會檢測str1 是否有其他的引用

所以在python3中時間複雜度是O(n)

l = []

for n in range(0, 100000):

l.append(str(n))

l = ' '.join(l)

由於列表的 append 操作是 O(1) 複雜度,時間複雜度為 n*O(1)=O(n)。

split分割

def query_data(namespace, table):

"""

given namespace and table, query database to get corresponding

data

"""

path = 'hive://ads/training_table'

namespace = path.split('//')[1].split('/')[0] # 返回'ads'

table = path.split('//')[1].split('/')[1] # 返回 'training_table'

data = query_data(namespace, table)

string.strip(str),表示去掉首尾的 strtring.lstrip(str),表示只去掉開頭的 strstring.rstrip(str),表示只去掉尾部的 str在讀入文件時候,如果開頭和結尾都含有空字符,就採用strip函數

s = ' my name is jason '

s.strip()

'my name is jason'

格式化

format

print('no data available for person with id: {}, name: {}'.format(id, name))

%

print('no data available for person with id: %s, name: %s' % (id, name))

%s 表示字符串型,%d 表示整型

兩種字符串拼接操作,哪個更好

s = ''

for n in range(0, 100000):

s += str(n)

l = []

for n in range(0, 100000):

l.append(str(n))

s = ' '.join(l)

# 第一個 +=

import time

start_time =time.perf_counter()

s = ''

for n in range(0,1000000):

s += str(n)

end_time = time.perf_counter()

# 5.7604558070000005

print(end_time - start_time)

# 第二個 join

import time

start_time =time.perf_counter()

s = []

for n in range(0,1000000):

s.append(str(n))

''.join(s)

end_time = time.perf_counter()

# 0.622547053

print(end_time - start_time)

# 第三個 map

import time

start_time = time.perf_counter()

s = ''.join(map(str, range(0, 1000000)))

end_time = time.perf_counter()

# 0.403433529

print(end_time - start_time)

對於數據量大的map好過join,join好過 +=

對於數據量小的map 好過 += 好過join

相關焦點

  • 十六、深入Python字符串
    「@Author :Runsen」python日常處理字符串較多,本文總結一下Python的日常使用。的字符串是不可變的,這個和元組一樣。nbsp;File "<stdin>", line 1, in <module>TypeError: 'str' object does not support item assignmentpython
  • python爬蟲 - 字符串
    python字符串Python中的字符串可以使用單引號、雙引號和三引號(三個單引號或三個雙引號,可以換行的)括起來,使用反斜槓 \ 轉義特殊字符Python3源碼文件默認以UTF-8編碼,所有字符串都是unicode字符串支持字符串拼接、截取等多種運算
  • python爬蟲-字符串
    python字符串 Python中的字符串可以使用單引號、雙引號和三引號(三個單引號或三個雙引號,可以換行的)括起來,使用反斜槓 \ 轉義特殊字符
  • 7招秘籍: 教你玩轉Python字符串
    xinxin 菜鳥學Python閱讀本文大概需要7分鐘:日常使用python經常要對文本進行處理,無論是爬蟲的數據解析,還是大數據的文本清洗,還是普通文件的處理,都是要用到字符串. Python對字符串的處理內置了很多高效的函數,非常方便功能很強大.下面是我總結的常用的7招,有了這幾招就能輕鬆應對字符串處理.
  • 7招秘籍:教你玩轉Python字符串
    xinxin 菜鳥學Python 閱讀本文大概需要7分鐘:日常使用python經常要對文本進行處理,無論是爬蟲的數據解析,還是大數據的文本清洗,還是普通文件的處理,都是要用到字符串.Python對字符串的處理內置了很多高效的函數,非常方便功能很強大.下面是我總結的常用的7招,有了這幾招就能輕鬆應對字符串處理.
  • Python3的字符串類型(瘋狂Python)
    字符串入門String字符串的意思就是「一串字符」,比如「Hello,田心木瓜」是一個字符串。,因此用戶輸入任何內容,input()函數總是返回一個字符串。raw_input()是python 2中的,相當於python 3中的inputIn [27]: i = input()1In [28]: print (type(i))<class 'str'>In [29]: j = input()2.89In [30]: print (type(j))<class 'str'>In [31]: h = input()helloIn
  • 慢步學python,編程基礎,字符串類型例子及輸出
    想了解python的安裝及運行的可以看慢步之前寫的文章。今天繼續python編程基礎內容,字符串類型數據。python裡面主要的數據類型是數值類型和字符串類型。計算機可以進行運算的是數值,字符串不能進行數學運算,像你在閱讀的文字,可以理解為字符串的一種。
  • Python小白必備知識:Python字符串詳解
    若干個字符的集合就是一個字符串(String)。所謂長字符串,就是可以直接換行(不用加反斜槓\)書寫的字符串。Files\Python 3.8\python.exe這樣的字符串,在 Python 程序中直接這樣寫肯定是不行的,不管是普通字符串還是長字符串。
  • python的內置函數eval:字符串運算
    前言最先認識eval,是在javascript中,eval() 函數可計算某個字符串,並執行其中的的 JavaScript 代碼。在javascript中,該方法只接受原始字符串作為參數,如果 string 參數不是原始字符串,那麼該方法將不作任何改變地返回。
  • python中str字符串和unicode對象字符串的拼接問題
    一個很基本的問題,遇到了,這裡記錄下str字符串s = 『中文』 # s: <type 『str』>s是個str對象,中文字符串。存儲方式是字節碼。字節碼是怎麼存的:如果這行代碼在python解釋器中輸入&運行,那麼s的格式就是解釋器的編碼格式;如果這行代碼是在源碼文件中寫入、保存然後執行,那麼解釋器載入代碼時就將s初始化為文件指定編碼(比如py文件開頭那行的utf-8);unicode對象字符串unicode是一種編碼標準,具體的實現可能是utf-8,utf-16,gbk等等,這就是中文字符串和
  • 慢步學習二級python,字符串類型的操作:操作符,函數和方法
    繼續學習二級python考試的大綱內容:4.字符串類型的操作:字符串操作符,處理函數和處理方法字符串和數值是python語言的基礎數據類型。學習字符串類型數據的操作是學習python的基礎。字符串操作符字符串常見操作符有2個+ *在應用中的意義是 連接 和 重複如上圖,第一個指令,「愛」+「你」,得到字符串「愛你」。
  • Python的基本數據類型之二:字符串(String)(下)
    this is a python program "為例,來說明各函數的具體用法;獲取字符串長度:len>>>print '%s length=%d' % (str,len(str))#輸出: Hello world!
  • Python變量,輸入和輸出,數字,字符串操作
    python中推薦使用下劃線「_」來連接,但在命名時一定要注意關鍵字。查看python的關鍵字:import keyptint(keyword.kwlist):字符串定義:字符串是一個有序的,不可修改的,以引號包圍的序列。
  • python語言-字符串格式
    python3以後,新增了一種格式化字符串的函數str.format(),它增強了字符串格式化的功能。相對於老版的%格式方法,它有很多優點。1.在%方法中%s只能替代字符串類型,而在format中不需要理會數據類型;2.單個參數可以多次輸出,參數順序可以不相同;3.填充方式十分靈活,對齊方式十分強大;4.官方推薦用的方式,%方式將會在後面的版本被淘汰。
  • 「測一測你的性格」小案例學習python字符串操作
    今天樹哥也嘗試用python做一個「性格測試小程序」,用這個案例來說明一下python的日曆和字符串操作的一些用法。一、案例分析案例題目:讓用戶輸入出生年月日,返回這是這一年的第幾周第幾天,並輸出當周的日曆。給出用戶的屬相給出用戶的星座,並告知用戶的性格。
  • python基礎語法總結
    python是一門相對來說比較簡單的語言,這使得無論是新手還是有其它語言經驗的人,學起python來都是事半功倍。本文整理一些python的基本語法。文件後綴名為 .py在一個後綴名為.py的文件中,寫入python代碼,它就可以被運行。雙擊直接運行的方式,可能會看到一閃而過的窗口,這是因為文件中的代碼已經執行完畢了。
  • 小瘋談python:字符串的拼接與格式化輸出
    因此為了使結果具有更好的可讀性和靈活性,字符串的格式化輸出就顯得格外重要。例如,我現在接受了用戶的輸入的年齡信息,如果我直接將這個年齡列印在控制臺上那麼對於需要這些數據的人來說可能不友好,因為他們可能不知道這個數據是什麼意思,也就是說列印出來到數據不具有泛讀性。同樣的在字符串中我們無法直接使用代碼中的變量因為python解釋器會默認字符串內的元素為字符。
  • 如何學習python字符串,在這裡有你想要的python字符串入門篇。
    python內的字符串:就是給一串字符取個名稱,叫做字符串。根據這個定義,我在前面寫過的程序中,寫的程序有一句「hello world",就是一個字符串。示例從示例可以看出來,不論是單引號還是雙引號,結果都是一樣的。
  • python數據類型總結——數字和字符串
    你可以給它一個數字,也可以給它一個字符串。這點和javascript一樣,但是,和Java不同。如下:python中,定義了五個標準的數據類型,分別是數字,字符串,列表,元組,字典。它們足以幫助你完成對生活中絕大部分事物的特徵描述。python數字數字是不可變的。生活中的大部分數字都可以在python表示。比如說整數,小數等。在python2中,較小的整數稱之為整型,較長的直到無限長度的整數稱之為長整型,即int和long。
  • python中文亂碼問題大總結
    若最後一句改為:print s.encode(&39;)則輸出:\xe4\xb8\xad\xe6\x96\x87,這是控制臺信息輸出窗口按照ascii編碼輸出utf8編碼的字符串的結果。print content.decode(&39;).encode(&39;)改成  print content.decode(&39;).encode(&39;, 『ignore』)時,OK了,可以顯示中文了,但不敢確定是否為全部,貌似只有部分吧,有些不能用gb2312編碼然而,當我把網站換成 www.soso.com時,不用轉為gb2312,用utf-8即可正常顯示中文總結一下